Apache2 + PHP で非公開ディレクトリの画像を読み込んで表示する
はじめに
Apache2 + PHP でウェブサーバを立てている状況で、非公開ディレクトリ(パブリックでないローカルのディレクトリ)の画像を読み込んで表示する方法を調べた。
※「画像は表示したいが、画像ファイル自体は公開ディレクトリに格納したくない」のような特殊なケース
TL;DR
- 以下を組み合わせて、
<img>
のsrc
に画像を設定する
目次
環境・条件
1 | $ cat /etc/os-release |
詳細
以下を組み合わせると OK。
1 |
|
ちなみに getimagesize
で取得できる情報は下記。
1 | echo var_dump($img_info); |
まとめ
- 以下を組み合わせて、
<img>
のsrc
に画像を設定する
その他・メモ
公開ディレクトリに置くけど、自サーバからのみアクセス可(外部サーバからのアクセスは拒否)とする場合は、下記の設定を行う。
参考: Apacheで画像などのリソースを直リンクさせない設定を行う(SetEnvIf + Referer)
/etc/apache2/apache2.conf
1 | # Deny direct access to images |
参考文献
- PHPでの画像の保存・表示方法まとめ - Qiita
- PHP: file_get_contents - Manual
- PHP: base64_encode - Manual
- PHP: getimagesize - Manual
関連記事
- Laravel で現在の URL 取得方法まとめ
- Laravel の Form::select で空の選択肢ありのセレクトボックス
- Laravel で Vue を利用する際の Tips/メモ
- PHP で条件分岐しつつ HTML を見やすく書く
- jQuery Select2 で、初期値の設定と選択状態のクリア
- Laravel で Cookie を使う(参照/設定/削除)
- JavaScript で URL のクエリパラメータを操作する方法
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)