3
我在Laravel 5.3项目中有一个文件夹位于存储中,它包含图像文件。如何在Laravel 5.3中显示来自存储文件夹的图像?
如何显示该文件夹中的图像?
我都用
Storage::allFiles('images');
由于文件夹的权限的名字我不能访问它们以通常的方式,我不希望改变他们。 我也不想把文件放在公共目录下。
有什么建议吗? 在此先感谢。
我在Laravel 5.3项目中有一个文件夹位于存储中,它包含图像文件。如何在Laravel 5.3中显示来自存储文件夹的图像?
如何显示该文件夹中的图像?
我都用
Storage::allFiles('images');
由于文件夹的权限的名字我不能访问它们以通常的方式,我不希望改变他们。 我也不想把文件放在公共目录下。
有什么建议吗? 在此先感谢。
你可以写一个控制器函数返回的图片是这样的:
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类型并根据该返回正确的响应类型等。
对于每个图像,我应该调用此函数? –
是的,你会设置一个路由:'Route :: get('/ image/{file}','ImageController @ image');'所以当你发出GET请求到'/ image'时通过这个功能服务。 – jcorry
顺便说一句,对于类似的用例,我已经从Intervention Image包中获得了非常好的结果。 http://image.intervention.io/ – jcorry