我正在学习一些我下载的laravel代码,我遇到了一些问题。这应该是保存、删除和下载文件的函数,但问题是。
这些文件保存在一个名为"storage\app\public\project-files\"上的数字的文件夹中(即存储\app\public\project\11),和download方法都在引用不同的路径,我试图更改但没有工作,下载显示的是E 213,只是从数据库中删除,而不是从文件夹中删除。
这段代码错了吗?应该是什么样子?我读过关于使用artisan:link的文章,但在我看来,每次要上传文件以创建链接时,运行这个命令似乎都很奇怪。
PS.我检查了路由,所以这些方法被称为。
谢谢
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);
}发布于 2017-10-09 09:37:06
您将文件存储在存储中,因此我假设您已将图像上传到以下路径
project\storage\app\public\project-files如果这是路径,则可以使用
Storage::delete('public/project-files/1.JPG');用于Downlaoding文件
$path= storage_path('app/public/project-files/3.JPG');
return response()->download($path);https://stackoverflow.com/questions/46642902
复制相似问题