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

2020-01-02PHP,PHP フォーム

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) {
	//処理
}

PHP,PHP フォーム

Posted by Yousuke.U