Я хочу загрузить файлы с уникальной случайной строкой в качестве имени файла, а затем, если я загружу файл с именем 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 является строкой (а не файлом), тогда я получаю другой хэш.
Как я могу решить эту проблему?
РЕДАКТИРОВАТЬ
Я хочу заменить полное имя файла уникальным идентификатором.