2016-01-13 292 views
5

我正在使用Laravel 5.1为网站制作图像上传功能。由于安全问题,我想将这些图像存储在/storage/app文件夹中,而不是/public。图片的URL,例如:Laravel 5.1 - 显示存储在存储文件夹中的图像

/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); 
} 

我的问题是,使用此路线检索图像后,我无法在我的视图中显示它们。没有404,500或任何错误状态代码,请求URL是它应该是,但它只是显示一个破碎的图像图标。我的代码有什么问题吗?

谢谢!

+0

可能重复的[Laravel 5 - 如何访问在视图中存储上传的图像?](http://stackoverflow.com/questions/30191330/laravel-5-how-to-access-image-uploaded-in-存储在视图中) – Bogdan

+0

我试过了,但无法显示图像,如上所述 – xlKD

+1

HTTP服务器可以读取文件吗?你有没有在“missingMethod”方法中实现图像处理的原因?因为该方法接受一个参数,并且它是一个参数数组,不像您定义的那样是'$ filename'。你有没有尝试符号链接的方法? – Bogdan

回答

0

对不起,我的/config文件夹中的一个php脚本有领先的空间,导致http响应失败@@这样一个无稽之谈的错误...谢谢大家的帮助!

相关问题