PHPでは、ファイルのアップロードCGIを簡単に作成する事ができます。ブログでも画像が無いと寂しいですし、業務用CGIでも WORD や EXCEL ファイル 、PDFファイルををアップロードできるシステムの要望は必ずあります。最もシンプルなカタチを知っておきましょう。

Flash+PHPファイルアップローダー
他人の作ったシステムをまず動かしてみましょう。
Flash Uploader

PHPでのデータ受信の仕様
アップロードされたファイルの情報は $_FILES に格納されます。$_FILES は $_POST や $_GET と同様、PHPが自動的に値をセットしてくれる連想配列です。また、アップロードしたファイルは一時的にサーバー側に保存され、PHPプログラムの実行が終了すると削除されます。

入力項目の name 属性を upfile にして送信した場合、ファイルの名前は $_FILES["upfile"]["name"] とすれば取得する事ができます。また、一時的にサーバー側へ保存されたファイルの名前は $_FILES["upfile"]["tmp_name"] とすれば取得する事ができます。

ファイルアップロードの設計
1) アップロードするファイルを格納するディレクトリを用意し、パーミッションを777にする→ 今回は uploads/ という名前にする
2) ファイル名をどうするか決める → 今回はクライアントのファイル名
3) 同一ファイル名だったらどうするか → 今回は上書き

continue reading…