如何获得它们存放在使用laravel 5.4存储目录化身网址是什么?(How to get avat

2019-09-28 21:21发布

我想要得到的存储目录中存储的虚拟形象的网址,我使用laravel 5.4。

其实我用下面的方法上传图像和获取URL。

上传图片:

<input type="file" class="form-control" value="{{ old('u_avatar') }}" name="u_avatar" />

在控制器

$UserModel->u_avatar = $request->file('u_avatar')->store('avatars'); // Uploading Files properly in the storage/app/avatars

获取图像

我曾尝试以下两种方法来获取图像,但两者都不能正常工作

第一种方法

在视图文件

<img src="{{ asset('storage/app') }}/{{ $User->u_avatar }}" class="img-responsive" /> // Not Working

第二种方法在控制

$User = UserModel::find($id);
//For Image
$path =  asset('storage/app/'.$User->u_avatar);// Not working 

我想请你亲切地指导我,我在做正确的方式或不? 在此引用的人在说

存储是不公开的。 你不能有保存文件,然后创建网络链接到他们。 这线程即将能够使用laravel拦截呼吁图像,从私有存储设备得到它,流的文件给客户端。

所以有人什么是存储在laravel5.4文件如何能在适当的方式获得最佳的方式。 我想感激。 谢谢。

Answer 1:

storage目录不是通过Web访问,所以你需要创建一个符号链接。

公共磁盘旨在为将要公开访问的文件。 默认情况下,公众磁盘使用本地驱动器和存储在这些文件storage/app/public 。 为了让他们从网络访问,您应该创建符号链接public/storagestorage/app/public 。 该公约将保持可以使用像Envoyer零停机时间部署系统时,可以轻松地在部署一个共享目录中的可公开访问的文件。

要创建符号链接,您可以使用storage:link工匠命令:

php artisan storage:link

当然,一旦文件被存储和符号链接已经建立,您可以创建一个URL来使用资产助手的文件:

echo asset('storage/file.txt');

https://laravel.com/docs/5.4/filesystem#the-public-disk



文章来源: How to get avatar url which are stored at storage directory using laravel 5.4?