web入門
すばらしきwebの世界

phpファイルアップロード

2016.08.17php



phpによる簡単な画像ファイルアップロードを作成します。

環境はローカルホストでXAMMP環境になります。

環境は前提を確認して下さい。


説明

よくあるファイルアップローダーの簡易版を作成します。


準備

ファイルは2つ必要となります。

1つめは画像ファイルアップロード画面でファイル名をindex.phpとします。

phpファイルですが、中身はhtmlです。

2つめはアップロードされたファイルを操作するファイルです。test.phpとします。

どちらもドキュメントルート以下へ “TestFileMove” を作成し各々のファイルを配置してください。

実際の作業としては、“c:\\xammp”以下に“TestFileMove”フォルダを作成し、このフォルダ配下にindex.php、test.phpを配置します。

なお、フォルダ名”TestFileMove”はサンプルです。任意でも構いません。

アクセスは “http://localhost/TestFileMove/index.php” になります。


作成

それでは、作成していきます。


画面

ファイルをアップロードする画面を作成します。

ファイル名をindex.phpとして、以下のように作成します。


formのaction属性に送信したい宛先を記載します。

httpの送信には必ずmethod属性が必要です。詳細は他に譲りますが、ここでは “POST” を指定して下さい。

最後に肝心なのはマルチパートの指定です(enctype=”multipart/form-data”)。こちらも詳細は他で譲りますが、指定しないと画像ファイルがサーバへアップロードされません。


ファイル受け取り

クライアントからhttpリクエストととして受け取ったファイルを操作するファイルを作成します。

test.phpとして、以下のように作成します。


アップロードファイルの情報は “$_FILES” で内容を確認出来ます。例では$_FILESの内容を表示しているだけです。

成功していれば、アップロードファイル名や、アップロードファイルのオリジナルファイル名、アップロードファイルの格納先など色々確認出来ます。

なお、アップロードされたファイルのファイル名はphpにより自動で生成されます。

また、実際にアップロードされたファイルの格納先はphp.iniの “upload_tmp_dir” に記載されています。

xammpのデフォルトであれば “C:\xampp\tmp” になります。


最後に

ファイルアップロードのミニマムを作成しました。

これを発展させて行きます。発展するには、

httpリクエストやマルチパート、”$_FILES” 変数 これらの意味を理解していきましょう。

以上です。