1
ユーザーはhttp://laravel.dev/123.jpgのようなURLを使って画像にアクセスできないようにしたいと思います。したがって、私はすべての画像を格納ディレクトリに保存します。それは、パブリックフォルダから外部に格納されているが、このLaravel 5とBladeで安全な画像を表示
public function show($id) {
$img = storage_path('my_images/123.jpg');
return response()->download($img, null, [], null);
}
画像のようなコントローラと
が正しく、Laravel 5で表示されます。
これまでのところ大丈夫ですが、Bladeを使用して画像をさらに詳細に囲みたいと思います。画像の位置が意図をイストた(公にアクセスできないため、そのために私コントローラこの
public function show($id) {
$picture = Picture::find($id);
$img = storage_path('my_images/123.jpg');
return view('pictures.show', array('picture' => $picture, 'img' => $img));
}
とビュー、明らかに動作しません
<!DOCTYPE html>
<html>
<head>
<title>Picture {{ $picture->id }}</title>
</head>
<body>
<h1>Picture {{ $picture->id }}</h1>
<ul>
<li>Name: {{ $picture->name }}</li>
<li>Description: {{ $picture->description }}</li>
</ul>
<img src="{{ $image }}">
</body>
</html>
このようなように見えます)。
<img src="{{ $image }}">
の代わりに何を使用してこの作業を行う必要がありますか?
!ありがとうございました。 このソリューションで私があまり好きでないのは、クライアントが実際にサーバーを2回呼び出すということだけです。ページ全体で初めて、イメージを取得するのに2回目です。 ソースを提供する代わりに、画像を '
'のような種類のバイナリとして転送する方法はありませんか? –
Steevie
実際にあなたのページ(images、css、js)でホストしているリソースの場合、クライアントはそれぞれ別のサーバー要求を行います。 –
ありがとう! – Steevie