我要访问文件storage/app/15573877669649.jpg
。
$file = $request->file('cover_image');
$fileName = time().rand(111, 9999).".".$file->getClientOriginalExtension();
Storage::disk('local')->put($fileName, file_get_contents($file));
blade.php
文件中文件的代码<img src = "{{ URL::to('/').Storage::url($article->coverImage) }}" alt="image">
返回
http://127.0.0.1:8000/storage/15573877669649.jpg
我尝试手动放置http://127.0.0.1:8000/storage/app/15573877669649.jpg
,但它也不起作用
答案 0 :(得分:1)
php artisan storage:link
现在可以在“ /storage/file.jpg”下访问您的文件
/
导致public
/storage/
通过链接将您引向storage/app/public
答案 1 :(得分:0)
默认情况下,Laravel的Storage::('local')
无法从公众访问; Storage::('public')
是将由命令php artisan storage:link
因此对于您的示例代码,您可以这样做:
上传文件
$file = $request->file('cover_image');
$fileName = time().rand(111, 9999).".".$file->getClientOriginalExtension();
Storage::disk('public')->put($fileName, file_get_contents($file));
在blade.php文件中
<img src = "{{ URL::to('/').Storage::disk('public')->url($article->coverImage) }}" alt="image">
// Or simpler
<img src = "{{ asset("/storage/$article->coverImage") }}" alt="image">
有关“磁盘”的更多详细信息,请检查/config/filesystems.php
中的配置文件,并参考官方文档的Public Disk部分
并且,请记住在Web服务器中启用以下符号链接设置
// Apache:
<Directory>
Options FollowSymLinks
</Directory>
// Nginx:
{
disable_symlinks off;
}