我已经看到某些保护图像的技术,只向经过身份验证的用户显示。一个例子是
how-to-protect-image-from-public-view-in-laravel
它只告诉我们大约1张图片。如果我们想要检索多个私有图像并将其显示给经过身份验证的用户,该怎么办?什么是最合适的方式?我们无法生成存储目录的链接吗?
答案 0 :(得分:1)
将图像保存在不可公开访问的存储文件夹中。然后根据参数创建一个生成图像的路径,该参数可以是图像名称或路径。使用auth
中间件包装此路由。根据路径的参数,在路径的控制器方法中使用适当的标题显示图像内容。
编辑:检查一下,给你一个想法。
示例路线
Route::get('securedimage/{name}', 'SecuredImageController@show');
样本控制器方法
public function show($name)
{
// check if the image with name exists in the folder that you store them
// If the image doesn't exist then display dummy image or return nothing
$imagePath = storage_path('/upload/' . $name);
return Image::make($imagePath)->response();
}
然后你可以像这样访问图像
<img src="http://example.com/securedimage/ball.jpg">
<img src="http://example.com/securedimage/topsecret.jpg">