Laravel -保存在存储文件夹中的图像未向用户显示

xghobddn  于 2022-10-30  发布在  PHP
关注(0)|答案(8)|浏览(181)

我有这个代码来保存一个图像在storage/app/uploads文件夹

$image_main = Image::where('property_id', $id)->get();

$file = $request->file('file');
      $destinationPath = 'uploads';
      $i = 0;
      foreach ($file as $file1) {
          $i++;
          $extension = $file1->getClientOriginalExtension();
          $path = $file1->storeAs(
              $destinationPath, $i.time().".".$extension
          );

这是我的刀锋档案

@foreach ($image_main as $images)
        <img src="{{"/storage/app/".$images->filename}}

该文件保存在storage/app/uploads文件夹中,但它不会显示给用户,它说文件未找到。我是否要在filesystems.php文件中设置任何内容

rdlzhqv9

rdlzhqv91#

Laravel存储文件系统是如此独特。当你做任何上传时,它会上传到storage/app/public目录。要使它在public目录中可访问,需要做的事情是通过运行命令创建符号链接:

php artisan storage:link

此命令会将storage/app/public符号链接到public/storage
只要按照文档中关于如何放置和如何检索文件URL的说明操作就可以了。我很肯定你缺少的步骤是创建符号链接。
希望能有所帮助。

oxf4rvwz

oxf4rvwz2#

用户无法访问您存储文件夹
必须通过**Storage::url()**方法传递:

Storage::url("/storage/app/{$images->filename}")

作为:

<img src="{{ Storage::url("/storage/app/{$images->filename}") }}" alt="{{ $images->filename }}" />

https://laravel.com/docs/master/filesystem#retrieving-files

zaqlnxep

zaqlnxep3#

您已经在.env文件中添加了此行

FILESYSTEM_DRIVER = public

之后,您需要在终端中运行此命令

php artisan storage:link

如果仍然不起作用,则需要在链接之前调用存储目录

<img src="{{ asset('storage/'.$post->image) }}" width="120px" hight="120px" alt="">
xhv8bpkk

xhv8bpkk4#

如果您使用homestead作为Mac上的环境,则需要遵循以下步骤:
1.删除公用/存储文件夹(如果有)
1.请执行下列步骤:

  1. ssh到你的宅基地使用下面的命令
  2. cd ~homestead
  3. vagrant up
  4. vagrant ssh
  5. cd Code/PATH_TO_YOUR_APP_ROOT_DIR
  6. php artisan storage:link
    1.访问映像,如下所示{{ asset('storage/img/myimage.jpg') }}
ddarikpa

ddarikpa5#

在尝试了几种解决方案后,我修复了它
1.删除符号链接
1.重建符号链接

php artisan storage:link

又成功了

egmofgnx

egmofgnx6#

您无法使用储存文件夹进行此动作。您必须将影像移至公用文件夹,才能从http存取。
请尝试在公用文件夹中创建一个名为images的文件夹,并将图像上载到该文件夹。然后,您可以按如下方式访问图像。

<img src="{{ public_path('images/image-name.png')}}" alt="" />
vdzxcuhz

vdzxcuhz7#

除了此处的解决方案外,还应注意以下几点:
Storage in laravel says symlink - no such file
Laravel -如何恢复本地存储符号链接和刷新

kognpnkq

kognpnkq8#

    • 尝试 此 方法 , 它 将 100% 有效 。 * *

首先 创建 一 个 符号 链接 :x1月 1 日
查看 存储 所有 图像 的 公共 文件 夹 内部 , 并 在 src 中 提及 这些 文件 夹 名称 , 最 后 从 数据 库 中 提及 您 的 图像 名称 。
示例 :

<img src="/images/posts/{{$post->featured_image}}">

中 的 每 一 个

示例 : 在 浏览 器 中 使用 链接 显示 图像 的 完整 路径

<img src="{{asset('/images/posts/'.$post->featured_image)}}">

格式

相关问题