【问题标题】:Accessing images stored in different files in laravel在 laravel 中访问存储在不同文件中的图像
【发布时间】:2022-12-18 13:34:27
【问题描述】:

我有一个管理员和一个用户门户。管理员上传必须在用户门户中显示的会员图像。管理员和用户门户都存在于不同的文件中。我试过“php artisan storage:link”,图像确实存储在 public/storage/image 下,但它没有显示在用户门户中。任何解决方案都会有所帮助。

$member->image = $request->image;

        if ($request->hasfile('image')) {
            $file = $request->file('image');
            $extenstion = $file->getClientOriginalExtension();
            $filename = time() . '.' . $extenstion;
            $file->move('storage/image', $filename);
            $member->image = $filename;
        } 
      $member->save();

   <img src="/storage/image/{{ $member->image }}" width="150" height="150"/>

我应该如何在用户门户中为此指定路径?

【问题讨论】:

    标签: laravel laravel-8 symlink


    【解决方案1】:

    您可以使用资产助手函数生成图像的 URL。如果您已经运行 php artisan storage:link 命令以创建从 public/storage 目录到 storage/app/public 目录的符号链接,这应该可以工作。

    以下是如何使用 asset 函数生成图像的 URL:

    <img src="{{ asset('storage/image/'.$member->image) }}" width="150" height="150" />
    

    或者,您也可以使用 Storage facade 生成图像的 URL,如下所示:

    <img src="{{ Storage::url('image/'.$member->image) }}" width="150" height="150" />
    

    这些解决方案应该允许您在门户中显示图像。

    【讨论】:

    • 图片由管理员上传,上传的图片显示给用户,它们位于完全不同的文件夹中。此方法是否适用于此。 (我试过了,但它没有在用户中显示图像)
    【解决方案2】:

    首先,您需要检查您的文件路径是目录的位置。 您可以在公开后确认存储链接路径。

    $ cd /var/www/html/public
    $ ls -la
    $ storage -> /var/www/html/storage/app/public // example
    

    然后,您的加载文件路径是否正确?

    例如,如果你想加载文件 storage/app/public/hoge.png, 你可以像加载 <img src="{{ asset("storage/hoge.png") }}" >

    尝试那些。

    【讨论】:

    • 图像存储在管理文件夹下 - 存储/图像,我想在用户视图刀片下显示。可能吗?
    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    相关资源
    最近更新 更多