今回の実装では、非公開ディレクトリへの画像の保存と取り出しを行います。ログイン認証が必要なサイトでも、画像を公開ディレクトリに保存した場合は、URLを知っていれば、ログインしなくても画像を観覧することができたり、ツール等で、まるごとダウンロードされてしまう等の問題があります。今回は、それに対応するために、画像を非公開ディレクトリに保存して、そこから取り出す部分を紹介します。保存については、一般的な保存と変わりませんが、画像を表示する際には、非公開ディレクトリに保存してあるので、直リンクでのアクセスは不可能です。そこで、PHP側で非公開ディレクトリから画像を取ってくるという作業が必要となります。サンプルの画像のURIをみても分かるように、直接画像を参照するのではなく、img.php?img=XXXXXXX.jpgのGETパラメーターとして、画像を指定していることに注目してください。zipダウンロードサンプル保存先の設定とフォームの作成まず保存先のパスを定数として定義しておきます。場所は、ドキュメントルートよりも上の/public_htmlと同じ階層にimgフォルダを作っておきます。このあたりは、サーバー環境によっても若干ことなると思いますので、定数に定義するパスは自身の環境にあわせて変更ください。'/home/xxxxxx/img/');?>次に、画像アップロードフォームの作成です。value="送信"></form></body></html>非公開ディレクトリへ画像をアップロードするアップロードに関しては、このあたりは、前半は、バリテーションで、後半が問題がなければ、アップロードです。'画像アップロードに失敗しました。?></table></body></html>まず、読み込む画像ファイルの名前をgetパラメーターとして設定するために、非公開ディレクトリのファイル名一覧をscandir()で取得し変数に格納します。引数は、定数で設定した非公開ディレクトリのパスとなります。ように、[0]と[1]は表示に不必要なので、こちらは条件分岐により除外します。取得した、一覧をループで表示してみます。ここでの役割は、GETパラメーターとして、img.phpの方へ処理を投げることで、メインは、次に紹介するimg.phpでの処理となります。//読み込み?>img.phpでは、view.phpより渡ってきたGETパラメーターをもとに指定の画像の読み込み処理をします。xxxxxx’);の部分です。今回出力したいのは、アップロードの際に、指定した、jpeg,png,gifの3種類です。xxxxxxの部分には、直接書くこともできますが、1種類しか設定できないので、このあたりを関数を使って、出力したい画像に応じてそれぞれ取得します。xxxxxxxの部分を引数$typeとして、そこにMime-Typeを取得するようにします。exif_imagetype()関数の引数にファイルのパスを設定して、ファイルタイプの番号を取得します。これにより、GETパラメーターによってタイプを変更することが可能となます。これにより、アクセスがあった場合は、画像として表示されます。attachment;を指定します。ファイルサイズの指定です。この部分はなくても動きますが、ブラウザの解釈によっては、大きなファイルの場合、画像の読み込みに失敗するようなことがあるようなので、表示しておきます。D特にプログラミングの実装を中心に関して実例をシンプルな形で紹介をしたいと思います。短時間で書いているのですが、極力分かりやすく書くように心がけます。reserved.HOMEQ&Aお問合せプライバシーポリシー(個人情報保護方針)。