ファイルをアップロードする

 フォームからファイルをアップロードすると、PHPでは$_FILES変数に格納して扱うことができます。その変数内にファイルに関する情報が含まれています。

変数名 内容
$_FILES[‘formname’][‘name’] ユーザーが選択したアップロードファイル名
$_FILES[‘formname’][‘size’] アップロードされたファイルのバイトサイズ
$_FILES[‘formname’][‘tmp_name’] アップロードされたファイルがサーバー上で保存されている一時ファイル名
$_FILESの主な情報

 アップロードされたファイルは、サーバー上で一時ファイルとして保存されているので、「move_uploaded_file」関数を使ってファイルを保存します。

関数名 move_uploaded_file
パラメーターリスト
パラメター名 説明
string $filename アップロードしたファイルのファイル名
string $destination ファイルの移動先
返り値
bool 成功した場合にTRUE、失敗した場合にFALSE
move_uploaded_file関数の仕様

○ ファイル

 「POSTForm.html」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 UploadForm.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

UploadForm.php

  1. <!DOCTYPE html>
  2. <html>
  3.  <head>
  4.   <meta charset="UTF-8">
  5.   <title>アップロードフォーム</title>
  6.  </head>
  7.  <body>
  8.   <form action="UploadTest.php" method="POST" enctype="multipart/form-data">
  9.    <input type="file" name="data">
  10.    <br>
  11.    <input type="submit">
  12.   </form>
  13.  </body>
  14. </html>

○ ファイル

 「POSTTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 UploadTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

UploadTest.php

  1. <?php
  2. //アップロードされたファイルを保存する
  3. move_uploaded_file($_FILES['data']['tmp_name'], basename($_FILES['data']['name']));
  4. ?>
  5. <!DOCTYPE html>
  6. <html>
  7.  <head>
  8.   <meta charset="UTF-8">
  9.   <title>ファイル受信</title>
  10.  </head>
  11.  <body>
  12. <?php
  13. var_dump($_FILES);
  14. ?>
  15.  </body>
  16. </html>

○ 実行結果

実行結果
実行結果

○ 解説

 「UploadTest.php」ファイルの3行目でファイルを保存しています。第1引数にサーバー上のファイル名を、第2引数に移動先のパスとファイル名を指定します。これにより今回は「/WebSample」ディレクトリーにアップロード指定されたファイルが保存されます。

 13行目では、$_FILES変数にどんな情報が格納されているかを確認するために画面出力しています。

前へ   次へ