【问题标题】:Laravel 5 - How can we access image from storageLaravel 5 - 我们如何从存储中访问图像
【发布时间】:2015-09-11 10:48:32
【问题描述】:

我需要在页面加载时查看个人资料图片。我已经使用 laravel 存储上传图片,但我不知道如何检索和查看图片。请检查我的以下代码并帮助我。

当前图片文件夹是 storage/app/1/1.jpeg

Laravel 代码

public function index()
{
        $id = Input::get('id');
        User::findOrFail($id);
        $file = Storage::get($id.'/'.$id.'.'.'jpeg'); 
        return response($file, 200)->header('Content-Type', 'image/jpeg');
}

JS

<script>
    $(function(){
        $.post("/viewProfile/image", { id: 1 })
                .done(function( data ) {
                    $('#responseImage').html('<img src="'+data+'">');
        });
    })
</script>

HTML

<div id="responseImage"> </div>

Firebug 控制台响应

Please find the attached file

Firebug 控制台标头

【问题讨论】:

  • 您确定图片链接正确吗?您编写了 Storage::get($id.'/'.$id.'.'.'jpeg');但您告诉我们您正在寻找 /storage/app/。不应该是 Storage::get('app/'.$id.'/'.$id.'.'.'jpeg'); ?
  • @CDF,感谢您的回复。路径是正确的。在 Laravel 5 存储方法中,默认路径是 storage/app/。我们可以编辑它(config/filesystems.php)。
  • 好的,谢谢。我看到你用图片编辑了你的帖子。您还可以发布浏览器返回的标题吗?
  • @CDF,我更新了我的帖子。
  • 你想把图片存入文件夹吗?

标签: php laravel laravel-5


【解决方案1】:

您试图将图像内容放入您的img 标记中。您只需将 src 属性指向将显示图像的 viewProfile/image/:id

编辑:

您的索引功能正在从存储中检索图像并显示它,因此如果您访问viewProfile/image/1,您将在浏览器中看到该图像。

然后您的 Javascript 函数向该页面发送请求,检索到的输出将添加到您的 img 标记中的 src 属性中。但是 src 属性只接受实际图像的路径,而不接受图像数据本身,除非您使用data

所以要解决您的问题,保持索引函数不变,并在视图中显示用户图像,请执行以下操作而不是您的 div

<img src="/viewProfile/image/1">

在这种情况下,应该显示您的图像,并且您不需要使用 Javascript 函数。您可以更改控制器以传递 $id 变量并将 1 更改为 {{ $id }}

【讨论】:

  • 我没有得到。请你写任何示例代码。
  • 我将在第二次更新我的答案,只是想解释一下并确保我理解你想要做什么。
猜你喜欢
  • 2019-05-25
  • 2020-09-07
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 2017-06-22
  • 1970-01-01
  • 2020-02-16
  • 2019-12-02
相关资源
最近更新 更多