我已经使用laravel建立了一个简单的文件上传系统。 为了存储图像,我将控制器设置为
public function store(Request $request)
{
$menu = new Menu;
$menu->title = $request->get('menuTitle');
$menu->user_id = Auth::id();
if($request->hasFile('menuImage')){
$filenameWithExt = $request->file('menuImage')->getClientOriginalName();
$fileName = pathinfo($filenameWithExt,PATHINFO_FILENAME);
$ext = $request->file('menuImage')->getClientOriginalExtension();
$fileNameToStore = $fileName.'_'.time().'.'.$ext;
$path = $request->file('menuImage')->storeAs('public/menu',$fileNameToStore);
}
else{
$fileNameToStore = 'blank.jpg';
}
$menu->image_name = $fileNameToStore;
$menu->save();
return redirect(route('menu.create'))->with('success',$menu->title." Added successfully");
}
在视图中,我将其设置为
<a href="#">
<img class="img-fluid rounded mb-3 mb-md-0" src={{asset("/storage/menu/".$menu->image_name)}} alt="">
</a>
在浏览器中,链接为
<img class="img-fluid rounded mb-3 mb-md-0" src="http://127.0.0.1:8000/storage/menu/Screenshot_20190517_023111_1558916284.png" alt="">
在开发过程中,我正在研究ubuntu,并且一切正常。但是,我将文件传输到了Mac,使用xampp,我可以使一切正常运行。但是,图像不再加载。检查控制台时出现404错误。但是,图像可以上传到正确的文件夹。
答案 0 :(得分:0)
您应该运行php artisan storage:link
,以便将storage/app/public
链接到public/storage
目录,并且链接将再次起作用