我在共享主机服务器上托管了laravel应用程序。在服务器上有2个文件夹:
- 1)laravelapp -〉包含(应用程序,配置,数据库,供应商...等文件夹)
- 2)public_html -〉包含(css,js,图像,存储文件夹)
我用下面的代码上传图片:
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
文件夹
我已经使用public_html/storage
创建了指向laravelapp/public/storage
的符号链接
在数据库中:图像路径保存为/storage/profile/user1.png
在刀片模板中,我用途:<img src="{{$img}}" />
但想象一下:
www.mydomain.com/storage/profile/user1.png 页面找不到页面找不到
请任何人帮助我解决问题。
5条答案
按热度按时间7y4bm7vi1#
这对我在一个共享主机服务器上工作:
编辑您的
config/filesystems.php
并修改public
部分,如下所示注意storage_path()不带任何参数。现在从
public
目录中删除storage
文件夹(如果已经存在),然后执行以下操作:3bygqnnd2#
因此,根据我们在评论中的讨论和
Laravel 5.5
文档,您的可公开访问的文件应该放在目录storage/app/public
中。要使它们可以从Web访问,您应该创建一个从public/storage
到storage/app/public.
的符号链接现在,您可以使用
asset
帮助器在视图中创建文件的URL:希望这对您和其他用户有帮助!
anhgbhbe3#
1)将文件存储在laravelapp/storage/app/public/cover/文件夹中
2)将文件存储在laravelapp/public/cover/文件夹中
在共享主机服务器中有2个文件夹:
laravelapp和public_html
由于我使用第二种方式上传图像,我已经通过创建从laravelapp/public/storage文件夹到public_html/的符号链接解决了这个问题
sbdsn5lh4#
可能是storage/public文件夹的符号链接错误,您可以检查它是否指向正确的文件夹。使用ls -l命令检查给定文件是否是符号链接,并查找符号链接指向的文件或目录。
第一个字符“l”表示文件是符号链接。“-〉”符号表示符号链接指向的文件。
rm命令删除给定的文件和目录。要删除符号链接,请调用rm命令,然后将符号链接名称作为参数:
创建指向存储公用文件夹的新符号链接
rggaifut5#
在cPanel或任何实时服务器中,确保您的存储文件夹和子文件夹具有正确的权限。它应该是
644, 755 or 777