如何以及在哪里可以用laravel存储图像?

时间:2016-07-07 22:56:09

标签: laravel laravel-5.2

如何以及在哪里使用laravel存储图像?

上下文: 我想在主视图中显示一些图像(这些是我预定义的)。 我还想存储用户上传的图片,但是,不知道这些图片的存储位置。

我想从视图中称呼这些......

非常感谢您的帮助。 :)

3 个答案:

答案 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')}}">