PHPのファイル処理における「ファイルのアップロードとダウンロード」は、Webアプリケーションで頻繁に使われる重要な機能です。以下に、それぞれについて詳しく解説します。
1. ファイルのアップロード
ファイルのアップロードは、ユーザーがフォームを使って自分のローカルファイルをWebサーバーに送信する機能です。PHPでは、$_FILES スーパーグローバル変数を使用して処理します。
フォーム側のHTML
-
enctype="multipart/form-data"は、ファイルを送信するために必須です。
PHP側の処理例(upload.php)
主なポイント
-
$_FILES['uploaded_file']['name']: 元のファイル名 -
$_FILES['uploaded_file']['tmp_name']: 一時保存先のパス -
move_uploaded_file(): 一時ファイルを任意のディレクトリへ移動する関数(これが実質的なアップロード処理)
2. ファイルのダウンロード
ファイルのダウンロードは、サーバー上のファイルをユーザーがダウンロードできるようにする処理です。header() 関数を使ってHTTPヘッダーを適切に設定し、ファイルを出力します。
PHPによるダウンロードスクリプト例
主なポイント
-
Content-Type: ブラウザにバイナリファイルであることを示す -
Content-Disposition: attachment: ダウンロード用であることを明示する -
readfile(): ファイルの中身を読み込んで出力する
セキュリティ上の注意点
-
アップロードされたファイルの拡張子・MIMEタイプをチェックする
-
ファイル名をリネームして保存する(予期せぬ上書きやパス操作を防ぐ)
-
ダウンロード時にユーザーが指定したファイルをそのまま使わず、事前に存在確認やパスチェックを行う
生成日:2025/05/03