[英]private file handling with laravel
当我存储图片、视频或其他文件等文件时,我不会将它们存储在公共文件夹中,而是存储在不可公开访问的私人文件夹中。 因为只有某些用户才能访问这些文件。
例如,使用以下示例函数,我加载图像并将它们放入视图中......这是正确的方法还是有更好的方法可以减少加载时间?
如何从私人文件夹中输出多个图像?
public function thumbnailfeedback($uuid)
{
$feedbackimage = FeatureRequest::findOrFail($uuid);
$thumbnail = storage_path($feedbackimage->image_thumbnail);
return Image::make($thumbnail)->response();
}
是的,如果您将图像存储在非公开访问的路径中,这几乎是唯一的方法。
为了加快速度,您可以通过普通的 PHP(标题 + 读取文件)来完成:
header('Content-Type: image/jpeg');
header('Content-Length: ' . filesize($thumbnail));
readfile($thumbnail);
exit;
或者如果你想将它保留为 Laravel 风格的类型代码,那么这样的事情就可以了
$headers = [
'Content-Type' => 'image/jpeg', // if single type if not determine type
'Content-Length' => filesize($thumbnail),
];
return response()->file($thumbnail, $headers);
您可以使用缓存标头和任何其他风格的东西来优化它。
对于多个图像,您必须对每个图像发出单独的请求,或者您必须以某种方式存档图像并将其发送给用户,但显然,除非未实现的下载包,否则用户将无法查看。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.