VIEW PDF 404 LARAVEL 7



我想有一个按钮,客户可以在其中查看候选人上传的申请人的文档,但由于某种原因,我不知道为什么它不起作用。

它在离线时工作得很好,但我今天通过FTP部署了这个网站,它不想工作。

我还不到一个初级开发人员,所以请对混乱的代码,保持友好

这是我的代码

上传刀片:

<form action="{{route('cv')}}" method="POST" enctype="multipart/form-data">@csrf
<div class="card">        
<div class="card-header">Update CV</div>
<div class="card-body">
<input type="file" class="form-control" name="cv"><br>
<button class="btn btn-success float-right"
type="submit">Update</button>
@if($errors->has('cv'))
<div class="error" style="color: red;">{{$errors->first('cv')}}</div>
@endif 
</div>
</div>

路线代码:

Route::post('user/cv','UserController@cv')->name('cv');

控制器代码:

public function cv(Request $request){
$user_id = auth()->user()->id;
$cv = $request->file('cv')->store(public_path('storage/files'));
Profile::where('user_id',$user_id)->update(['cv'=>$request->file('cv')->getClientOriginalName()]);

return redirect()->back()->with('message', 'CV Successfully Updated!');
}

查看CV的代码:

<a href="{{Storage::url($profile->cv)}}" class="btn btn-outline-primary">View my CV</a>

当我点击按钮,我得到这个网址:

cvroad.co.za/storage/Kevin%20Breed.pdf

该文件的名称是:Kevin Breed.pdf,这也是它在我的数据库中的显示方式。

但是仍然没有找到404?

任何帮助都将不胜感激,谢谢!

不要对文件路径进行硬编码,而是使用Laravel的storage_path()来获得正确的路径。

$cv = $request->file('cv')->store(storage_path('files'));

尽管如果您使用的是Storage::url(),那么它在public/storage中查找,因此正确的方法可能是使用public_path

$cv = $request->file('cv')->store(public_path('storage/files'));

此外,在保存到数据库时,您保存的是完整路径,而不仅仅是名称。你可以这样存储名称:

Profile::where('user_id',$user_id)->update(['cv'=>$request->file('cv')->getClientOriginalName()]);

最新更新