2016-11-28 108 views
3

我在Laravel 5.3项目中有一个文件夹位于存储中,它包含图像文件。如何在Laravel 5.3中显示来自存储文件夹的图像?

如何显示该文件夹中的图像?

我都用

Storage::allFiles('images'); 

由于文件夹的权限的名字我不能访问它们以通常的方式,我不希望改变他们。 我也不想把文件放在公共目录下。

有什么建议吗? 在此先感谢。

回答

2

你可以写一个控制器函数返回的图片是这样的:

public function image($file){ 
    $image = storage_path('images/' . $file); 

    if(!File::exists($image)) 
     App::abort(404); 

    // using Intervention Image package 
    return Image::make($image)->response('jpg'); 

    // using Laravel file response 
    $headers = ['Content-Type' => 'image/jpeg']; 
    return response()->file($image, $headers); 
} 

当然,这是非常裸露的骨头...你可以云杉它来调整需求,检查MIME类型并根据该返回正确的响应类型等。

+0

对于每个图像,我应该调用此函数? –

+0

是的,你会设置一个路由:'Route :: get('/ image/{file}','ImageController @ image');'所以当你发出GET请求到'/ image'时通过这个功能服务。 – jcorry

+0

顺便说一句,对于类似的用例,我已经从Intervention Image包中获得了非常好的结果。 http://image.intervention.io/ – jcorry

相关问题