【PHP学習】画像を受け取る「$_FILES」変数について

20220219_php_icon_130857.png PHP

PHP学習している時に、すぐに忘れる画像を受け取る時に使う「$_FILES」変数の簡単な説明です。

$_FILESとは

$_FILESとはPOSTデータで受け取った画像ファイルを取り出すときに使う「スーパーグローバル変数」です。

スーパーグローバス変数とはどこからでも呼び出せる変数のことです。

公式サイト:スーパーグローバル

「$_FILES」の中身を見てみる

実際にPOSTで送られた画像データを取得して「$_FILES」の中身を見てみます。

  • サンプルコード
<form action="/" method="post" enctype="multipart/form-data">
  <p>画像を選んでください</p>
  <input type="file" name="gazou" id="">
  <p>
    <input type="button" class="btn" onclick="history.back()" value="戻る">
    <input type="submit" class="btn" value="OK">
  </p>
</form>

適当に画像を選択してアップロード後、データを「$_FILES」に格納して、表示してみます。
アップロードファイル名:english_school.png

<php
$gazou = $_FILES['gazou'];
var_dump($gazou);

そうすると次のようにブラウザに表示されます。

  • 結果
array(5) {
  ["name"]=>
  string(18) "english_school.png"
  ["type"]=>
  string(9) "image/png"
  ["tmp_name"]=>
  string(14) "/tmp/phpcDFFJB"
  ["error"]=>
  int(0)
  ["size"]=>
  int(167367)
}

というように、「$_FILES」に格納すると、5つの連想配列に値が入っています。

配列名 説明
name ファイル名
type ファイルタイプ(MIME 型)
tmp_name サーバー上で保存されているテンポラ リファイルの名前
error エラーコード(0はエラーなし)
size ファイルサイズ(バイト)

さらに詳細な説明は以下のサイトにあります。

公式サイト:POST メソッドによるアップロード

どのように使うのか?

「どのように使うのか?」と言うと、ブラウザでアップロードした画像を保存するときに利用します。

参考URL

以下のサイトを参考にさせていただきました。

わかっているようでわからない、PHPのFETCHを解説!

以上です。ありがとうございました。

コメント

タイトルとURLをコピーしました