如何以及在哪里使用laravel存储图像?
上下文: 我想在主视图中显示一些图像(这些是我预定义的)。 我还想存储用户上传的图片,但是,不知道这些图片的存储位置。
我想从视图中称呼这些......
非常感谢您的帮助。 :)
答案 0 :(得分:17)
基本上,只要您有权创建目录和文件,就可以在Laravel应用程序中的任何位置保存文件。
但我更喜欢在storage/app
文件夹中保存文件。 Laravel提供了一个简单的API来处理磁盘上的文件。请参阅docs。
更新
当Laravel在5.2版本中时,发布了这个答案。
从5.3版开始,您可以通过运行artisan命令php artisan storage:link
轻松创建符号链接。请参阅docs。
答案 1 :(得分:1)
如果要在网站上显示它们,请将它们存储在公共目录中。由于它们是由用户上传的,因此您需要通过表单传递它们。以下是控制器的示例。
$file = Input::file('picture');
$file->move(public_path().'/images/',$user->id.'.jpg');
用户将提交带有图片字段的表单。上面的两行将它存储在images文件夹中的公共目录中,相关用户的id作为其名称。您最好在数据库中为图像及其路径制作模型。如果这样做,请在上面两个之后添加这些行。
$image = new Image;
$image->path='/images/'.$user->id.'.jpg';
$image->user_id = $user->id;
$image->save();
要在视图中显示它,只需将$ image变量设置为控制器中的正确图像模型,然后将其传递给视图。然后在图像的src中弹出它的路径。
<img src={{$image->path}} alt={{$image->path}}>
答案 2 :(得分:0)
在myapp / public / images中创建图像目录,并将图像保留在其中。
<img src="{{URL('/images/logo.jpg')}}">