我想上传一个带有唯一随机字符串作为文件名的文件,然后如果我上传一个名为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);
}
downloadFile中的md5_file方法没有(显然可行),因为$ fileName是一个字符串(不是文件),然后我得到一个不同的哈希。
我该如何解决这个问题?
修改
我想用唯一的ID替换整个文件名。