1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHP】スーパーグローバル変数$_FILES

Posted at

スーパーグローバル変数$_FILES

入力フォームでファイルを添付する機能があるかと思います。
このファイル添付時に使用する変数の $_FILES の解説をします。

$_FILESとは

$_FILESとは、PHPの定義済み変数のひとつで、POSTメソッドでアップロードしたファイルの情報を格納した二次元配列となっている。

使い方

$_FILESは、二次元配列になっている。
1つ目のキーは、入力フォームのファイル送信欄の「name」属性値。
2つ目のキーは、nametypesizetmp_nameerrorのいづれかである。
例えば、ファイル送信欄の「name」属性値が「systemFile」であれば、下記となる。

二次元配列
// ファイルの名前
$_FILES['systemFile']['name']
// ファイルのMIME型(MIMEタイプとはファイルの種類の情報を表すもので「png」「jpeg」等)
$_FILES['systemFile']['type']
// ファイルのサイズ(バイト単位)
$_FILES['systemFile']['size']
// テンポラリファイル(一時的に保存されるファイル)
$_FILES['systemFile']['tmp_name']
// ファイルアップロードに関するエラーコード
$_FILES['systemFile']['error']

ファイルアップロードに関するエラーコード

  • 0 :エラーなし。ファイルアップロード成功。
  • 1 :ファイルサイズが「php.ini」の「upload_max_filesize」の値を超えている。
  • 2 :ファイルサイズが送信フォームで指定した「MAX_FILE_SIZE」の値を超えている。
  • 3 :一部しかアップロードされなかった。
  • 4 :アップロードされなかった。
  • 6 :テンポラリフォルダがない。
  • 7 :ディスクへの書き込みに失敗。
  • 8 :PHP拡張モジュールがファイルアップロードを中止。

HTMLの<form>タグで「method属性をPOST」、「enctype属性をmultipart/form-data」にしなければならない。

サンプル

遷移前
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>$_FILESサンプル</title>
</head>
<body>
    <h1>画像のアップロード前</h1>
    <p>下記画像アップロード</p>
    <img src="https://1.bp.blogspot.com/-hk-wB0PZBjo/XyZ_RMcHCyI/AAAAAAABaZ4/iEm-0O-3lZYFXHypV3vxNoD83GDt8OPKQCNcBGAsYHQ/s1600/computer_shigotoscreen_back_man.png" width="200" height="200" >
    <form method="post" action="bbb.php" enctype="multipart/form-data">
        <input type="file" name="systemFile"> <br>
        <input type="submit" value="送信">
    </form>
</body>
</html>
遷移後
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>$_FILESサンプル</title>
</head>
<body>
    <h1>画像のアップロード後</h1>
    <p>画像アップロード情報</p>
    <p>ファイル名:<?php echo $_FILES['systemFile']['name'] ?></p>
    <p>ファイル形式:<?php echo $_FILES['systemFile']['type'] ?></p>
    <p>ファイルサイズ:<?php echo $_FILES['systemFile']['size'] ?></p>
    <p>tmpファイル:<?php echo $_FILES['systemFile']['tmp_name'] ?></p>
    <p>エラー情報:<?php echo $_FILES['systemFile']['error'] ?></p>
</body>
</html>

参考

PHP マニュアル 言語リファレンス
【初心者向け】$_FILESで画像をアップロードする方法


著者: E.R (株式会社ウィズツーワン)
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?