2016-01-13 291 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響應失敗@@這樣一個無稽之談的錯誤...謝謝大家的幫助!

相關問題