PHPでHTMLフォームでの画像のPOST送信と受け取り

HTMLのFORMで画像をPOST送信する方法
HTMLのFORMで画像ファイルをPOST送信するには、formに『enctype="multipart/form-data"』を記述し『input type="file"』を利用する事で実装可能になります
HTML
<form action="post.php" method="POST" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" id="submit" value="送信" />
送信した画像ファイルをPHPで受け取る方法
HTMLのFORMで送信した画像ファイルをPHPで受け取るには、『$_FILES['image’]』とする事で送信されたファイルを受け取る事が可能です
$_FILES['image’]のimageの部分は送信するname属性なので、送信するHTMLフォームのname名に合わせます
if($_FILES['image']['name']){
echo $_FILES['image']['name'];
}
//受け取った受け取ったファイル名が表示される
$_FILESで受け取れる画像ファイルの情報
$_FILES['xxxxx’]['name’]の他にも以下の情報が受け取られていて利用可能です
$_FILES['xxxxx’]['name’] | 受信したファイル名 |
$_FILES['xxxxx’]['type’] | 受信したファイルのファイルタイプ(拡張子) |
$_FILES['xxxxx’]['size’] | 受信したファイルのバイト単位のサイズ |
$_FILES['xxxxx’]['tmp_name’] | 受信したファイルのサーバー上で保存されているテンポラ リファイルの名前 |
$_FILES['xxxxx’]['error’] | 受信したファイルによるエラー情報 |
複数の画像を同時に送受信する方法
複数の画像を同時に送受信するには、送信元のname属性を複数作るか、配列として送信する様に設定します
配列とした場合、php側で受け取った際にforeac文で繰り返し処理が利用できます
HTML
<form action="post.php" method="POST" enctype="multipart/form-data"> <input type="file" name="image[]"> <input type="file" name="image[]"> <input type="file" name="image[]"> <input type="submit" id="submit" value="送信" />
PHP
foreach ($_FILES["image"] as $key => $value) {
//処理
}
ディスカッション
画像貼り付けに関して、バグがあるのにも関わらず普通に紹介してますが、不具合が起きなかったわけありませんよね?
試さずもせずに記事を書いているということが発覚しましたね!
今後はきちっと検証した上で記事にして頂けるよう願う!
この記事のせいで無駄な時間を半日かかりました。
反省して下さい!