【发布时间】:2018-03-20 10:53:28
【问题描述】:
我正在研究我下载的一些 laravel 代码,但遇到了一些问题。 这应该是保存,删除和下载文件的功能,但问题是。
文件保存在 "storage\app\public\project-files\" 上的一个以数字命名的文件夹中(即 storage\app\public\ project-files\11),destroy 和 download 方法都引用了不同的路径,我尝试更改但没有成功,download 显示FileNotFoundException 和 destroy 只是从数据库中删除,而不是从文件夹中删除
那么这段代码错了吗?它应该是怎样的? 我已经阅读过有关使用 artisan:link 的信息,但每次我想上传文件以创建链接时运行此命令似乎很奇怪
附言。我检查了路线,因此正在调用方法
谢谢
public function store(Request $request)
{
if ($request->hasFile('file')) {
$file = new ProjectFile();
$file->user_id = $this->user->id;
$file->project_id = $request->project_id;
$request->file->store('public/project-files/'.$request->project_id);
$file->filename = $request->file->getClientOriginalName();
$file->hashname = $request->file->hashName();
$file->size = $request->file->getSize();
$file->save();
$this->project = Project::find($request->project_id);
return view('project-files');
}
public function destroy($id)
{
$file = ProjectFile::find($id);
File::delete('storage/project-files/'.$file->project_id.'/'.$file->hashname);
ProjectFile::destroy($id);
$this->project = Project::find($file->project_id);
return view('project-files');
}
public function download($id) {
$file = ProjectFile::find($id);
return response()->download('storage/project-files/'.$file->project_id.'/'.$file->hashname);
}
【问题讨论】:
标签: php laravel file-upload