我正在开发一个laravel项目,其中用户上传服务器修改的文件,然后用户可以下载它(无用户名和密码验证)。上传和修改在控制器中完成,下载在不同的控制器中完成。我的问题是如何返回该用户上传的文件?我如何标记属于他的文件而不是其他文件?我应该考虑代币吗?
这就是我想在下载控制器中完成的任务:
protected function getDownload(Request $request){
$file = "path to the file that belongs to this user";
return Response::download($file);
}
答案 0 :(得分:0)
您需要在数据库中注册该文件。创建一个文件表并在其中创建以下字段:
id| original_name| modified_name| mime| user_id/user_hash ...
您需要创建此类字段,以便知道上传的文件与修改后的文件相对应。例如,您修改了文件名,因此我将该字段放在其原始名称中并进行了修改。
要将文件附加到未注册的用户(即数据库中没有ID的用户),您可以生成哈希值并在 user_hash 字段中写入。此外,将此哈希值放入cookie中,以便下次您知道他下载了该文件的内容。如果此用户在数据库中,只需将其ID设置为 user_id