2016-01-13 27 views
5

Laravel 5.1を使用してウェブサイトの画像アップロード機能を作成しています。セキュリティ上の問題があるため、/publicの代わりに/storage/appフォルダに保存することをお勧めします。例えば画像のURL、:/storageに画像要求を指すようにLaravel 5.1 - 保存フォルダに保存された画像を表示する

http://app.com/image/<image_name> 

/storage/app/images/<image_name> 

/storage/appから画像を得るために、私はこのための具体的なルートを設定

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 - View内のストレージにアップロードされた画像にアクセスするにはどうすればよいですか?](http://stackoverflow.com/questions/30191330/laravel-5-how-to-access-image-uploaded-in- storage-within-view) – Bogdan

+0

私は試しましたが、上記のように画像を表示できません – xlKD

+1

ファイルをHTTPサーバーで読み取ることはできますか? 'missingMethod'メソッドで画像処理を実装した理由はありますか?このメソッドは1つの引数を受け取り、パラメータの配列であり、あなたが定義したような '$ filename'ではありません。シンボリックリンクのアプローチを試しましたか? – Bogdan

答えて

0

私の/configフォルダ内のPHPスクリプトには先頭のスペースがあり、http応答が失敗しました@@そのようなナンセンスミス...あなたのお手伝いをしていただきありがとうございます!

関連する問題