Laravel 5 - 我们如何从存储中访问图像

时间:2015-09-11 10:48:32

标签: php laravel laravel-5

我需要在页面加载时查看配置文件pic。我使用了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

enter image description here

Firebug控制台标题 enter image description here

1 个答案:

答案 0 :(得分:1)

您正尝试将图片内容放入img标记内。您只需将src属性指向viewProfile/image/:id即可显示图像。

编辑:

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

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

因此,要解决您的问题,保持索引功能不变,并在视图中显示用户图片,请执行以下操作,而不是div

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

在这种情况下,应显示您的图像,而您无需使用Javascript功能。您可以更改控制器以传递$id变量并将1更改为{{ $id }}