我正在为一个使用Laravel 5.1的网站制作一个图像上传功能。由于安全问题,我想将这些图像存储在/storage/app
文件夹中,而不是/public
文件夹中。图像的URL,例如:
/storage/app/images/<image_name>
为了从/storage/app
获得图像,我为此设置了一个特定的路线:
http://app.com/image/<image_name>
将图像请求指向/storage
:
Route::controllers([
'image' => 'Frontend'ImageController',
]);
在ImageController
中,以下是创建响应的代码:
public function missingMethod($filename = [])
{
if (is_array($filename)) {
$filename = implode('/', $filename);
}
// storage_path('app') - path to /storage/app folder
$path = storage_path('app') . '/' . $filename;
$file = 'File::get($path);
$type = 'File::mimeType($path);
return 'Response::make($file,200)
->header("Content-Type", $type);
}
我的问题是,在使用此路线检索图像后,我无法在视图中显示它们。没有404500或任何错误状态代码,请求URL应该是,但它只是显示了一个损坏的图像图标。我的代码有什么问题吗?
谢谢!
对不起,我的/config
文件夹中的一个php脚本有前导空间,导致http响应失败@@真是个愚蠢的错误。。。谢谢大家的帮助!