PHP: генерировать уникальную строку для имени файла - PullRequest
0 голосов
/ 22 мая 2018

Я хочу загрузить файлы с уникальной случайной строкой в ​​качестве имени файла, а затем, если я загружу файл с именем file.txt, который будет хэширован, как m84n3nv38tu48a, если я загружу тот же файл снова, он не будет сохранен, потому что тот жеимя файла с таким хешем существует.

Затем загрузите файл, выполнив поиск по его оригинальному имени, снова хэшируйте и сравните, чтобы найти в каталоге.

Что-то вроде этого

public function storeFile(Request $request) {
    $file = $request->file('file');
    $filename = $file->getClientOriginalName();
    $path = $file->move(storage_path()."\\app\\file", md5_file($file);
    $response = [
        "file Name" => $filename,
        "Extension" => $file->getClientOriginalExtension(),
        "Path" => storage_path().$path
    ];
    return response()->json($response);
}

public function downloadFile($fileName) {
    $fullpath = storage_path()."\\app\\file\\".md5_file($fileName);
    $file = file_exists($fullpath);
    if($file)
        return response()->download($fullpath, $fileName);
    return response()->json('File not Found', 404);
}

Метод md5_file в downloadFile не работает (очевидно, работает), поскольку $ fileName является строкой (а не файлом), тогда я получаю другой хэш.

Как я могу решить эту проблему?

РЕДАКТИРОВАТЬ

Я хочу заменить полное имя файла уникальным идентификатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...