2016-08-11 15 views
1

GoogleとSOでほぼすべてのスキャンを行った後も、これを修正することはできません。ストレージフォルダの画像をLaravel 5に表示する

私のアプリでは、ユーザーが写真をアップロードできます。ユーザーのデータはかなり敏感なので、私はすべてを保存フォルダに保存し、PHPを使って画像を提供します。

ビュー

<img src="{{ asset('logo/' . $organization->logo_thumbnail_path) }}" alt=""> 

ルート

Route::get('logo/{logo}', function($logo) { 

    $image = Image::make(Storage::disk('logo-image')->get($logo)); 
    $image->response(); 

}); 

ルートは、対応するファイル名をstorage/app/img/logo内を検索します。私がStorage::disk('logo-image')->get($logo)をエコーし​​た場合、奇妙な文字の巨大なページが表示され、実際の.jpgイメージが得られると信じられます。

しかし、ルートに直接アクセスしても画像は表示されません。

また、ルートを変更してホームページに戻しても、画像を表示するビューを開いても何も起こりません。それで、<img>タグ内でルートが決して呼び出されないと私は信じます。

あなたはこれ以上のことを知っていますか?私はかなり立ち往生しており、何時間もの検索は何もしていません。

EDIT:レスポンスにすべてのヘッダーやものを手動で設定して、画像が表示されるようにします。

+0

私はここで野生の推測をしていますが、ヘッダーは正しいと思いますか? – Andrew

+0

私は介入/画像ライブラリを使用しています。これは、私が呼んでいるresponse()メソッドがすべての正しいヘッダを与えなければならないと述べています。また、 '$ image-> response'をエコーし​​た場合、別の巨大な奇妙な文字のページが表示されます。 http://image.intervention.io/api/response – Loek

+0

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

答えて

1

は、答えはかなり簡単だったように、私は$image->response()

のでreturn $image-response();を返しませんでしたし、すべての作品らしいです。

ありがとう@Drown!

+0

リクエストが外部ドメインからのものかどうかを確認する方法はありますか?つまり、外部リクエストのためにイメージを返しますが、ユーザーがブラウザに直接ルートを入力すると、ビューが表示されます。 – JCarlos

+0

正確にはどういう意味ですか?あなたのコードが実行されるのと同じサーバーから来ていない限り、すべての要求は外部にあります。 – Loek

+0

例: '' 'https:// media.giphy.com/media/3ohzdNzYZoPbJwLHtC/giphy.gif''このgifは' '' 'img'''タグで使用でき、画像が読み込まれます。しかし、ブラウザで直接リンクにアクセスすると、画像だけでなくページも表示されます。 – JCarlos

関連する問題