我使用laravel Filesystem存储图片,图片将上传到默认存储空间内,例如:
/home/user/Projects/mywebapp/storage/app/images/posts/1/e392e17926559e7cc4e7934f.png
我没有更改config/filesystem.php
,这是我上传图片的控制器方法,
public function storeImage( Request $request ) {
$image = $request->file( 'image' )->store( 'images/posts/'.Auth::user()->id );
echo Storage::url( $image ); // <- print the url of the uploaded image
}
这会像这样打印图像网址
http://localhost:8000/storage/images/posts/1/e392e17c6a8d7926559e8e7cc4e7934f.png
但是无法从浏览器访问图像文件! 我不想使用php来动态获取图像,我只是想通过http公开访问它们。如何显示图像?
答案 0 :(得分:1)
你只需要在config \ filesystems.php表单中进行更改
'default' => local,
到'default' => public,
然后在控制台中运行php artisan storage:link
然后尝试上面的代码,它将起作用
答案 1 :(得分:0)
对我来说,当我将"../"
添加到文件的网址时,它就起作用了:
@foreach($arquivos as $i)
<li class="list-group-item"> <img src="{{ asset('img/pdf.png') }}" /> <a href=" {{ asset('../storage/app/public/'.$i->arquivo) }}" target="blank"> {{ $i -> nome }} </a> </li>
@endforeach
我正在这样保存文件:
$ext = $request->arquivo->extension();
$path = $request->arquivo->storeAs('/relatorios', $nameoffile. "." . $ext);