我在共享托管服务器上托管了 Laravel 应用程序。在服务器上有 2 个文件夹:
1) laravelapp -> 包含 (app,config,database,vendor...etc 文件夹)
2) public_html -> contains (css,js,images,storage folders)
我使用以下代码上传图片:
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;
}
Run Code Online (Sandbox Code Playgroud)
它已成功将文件上传到laravelapp/public/storage/profile
文件夹
我创建符号链接到laravelapp/public/storage
与public_html/storage
在数据库中:imagepath 被保存为 /storage/profile/user1.png
在我使用的刀片模板中: <img src="{{$img}}" />
但 imageurl :
www.mydomain.com/storage/profile/user1.png 重定向到 404 页面并且图像不显示。
任何人请帮我解决问题。
Eri*_*eni 10
这在共享托管服务器上对我有用:
像这样编辑config/filesystems.php
和修改public
零件
'public' => [
'driver' => 'local',
'root' => storage_path(),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
]
Run Code Online (Sandbox Code Playgroud)
请注意, storage_path() 不接受任何参数。现在storage
从您的public
目录中删除文件夹(如果已经存在),然后执行:
php artisan storage:link
Run Code Online (Sandbox Code Playgroud)
因此,根据我们在评论中的讨论和Laravel 5.5
文档,您的可公开访问的文件应该放在目录中storage/app/public
为了使它们可以从网络访问,您应该创建一个符号链接public/storage
从storage/app/public.
ln -s /path/to/laravel/storage/app/public /path/to/laravel/public/storage
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用帮助程序在视图中创建文件的 URL asset
:
echo asset('storage/file.txt');
Run Code Online (Sandbox Code Playgroud)
希望这会对您和其他用户有所帮助!
1)将文件存储在 laravelapp/storage/app/public/cover/ 文件夹中
use Illuminate\Support\Facades\Storage;
$path=$request->file('cover_image')->storeAs('public/cover_images',$fileNameToStore);
Run Code Online (Sandbox Code Playgroud)
2)将文件存储在 laravelapp/public/cover/ 文件夹中
$path=request()->cover_image->move(public_path('storage/profile'), $fileNameToStore);
Run Code Online (Sandbox Code Playgroud)
在共享托管服务器中有 2 个文件夹:
laravelapp 和 public_html
由于我使用第二种方式上传图像,我通过创建从 laravelapp/public/storage 文件夹到 public_html/ 的符号链接解决了这个问题
ln -s /home/username/laravelapp/public/storage /home/username/public_html/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13223 次 |
最近记录: |