我在共享托管服务器上托管 laravel 应用程序。
服务器上有2个文件夹:
我使用下面的代码上传图片:
if($request->hasFile('file')){
$filenameWithExt=$request->file('file')->getClientOriginalName();
$filename=pathinfo($filenameWithExt,PATHINFO_FILENAME);
$extension=$request->file('file')->getClientOriginalExtension();
$fileNameToStore=str_slug($filename,'_').'_'.time().'.'.$extension;
request()->file->move(public_path('storage/profile'), $fileNameToStore);
$image="/storage/profile/".$fileNameToStore;
}
上传文件成功到
laravelapp/public/storage/profile
文件夹
我创建了指向
laravelapp/public/storage
的符号链接(symbolic link)与
public_html/storage
在数据库中:图像路径保存为
/storage/profile/user1.png
在我使用的 Blade 模板中:
<img src="{{$img}}" />
但是 imageurl :
www.mydomain.com/storage/profile/user1.png redirect to 404 page and image not displaying .
任何人请帮我解决问题。
请您参考如下方法:
这在共享托管服务器上对我有用:
编辑您的 config/filesystems.php
并修改public
像这样的部分
'public' => [
'driver' => 'local',
'root' => storage_path(),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
]
请注意, storage_path() 不接受任何参数。现在删除
storage
您的
public
中的文件夹目录如果已经存在,则执行:
php artisan storage:link