PHP formのsubmitでファイルをアップロードするサンプル

PHPのformのsubmitでファイルをアップロードするサンプルです。

確認環境
・PHP 7.1.8
・XAMPP 7.1.8
・Windows 10

PHPのファイル

以下2つのファイルがあります。
 1.index.php・・・画面でファイルを選択してアップロードします。
 2.test1.php・・・ファイルを受け取ります。

ファイルをアップロードする画面 (index.php)

ファイルをアップロードする画面のコードです。
8行目は、form要素にenctype="multipart/form-data"を指定しています。ファイルをアップロードするときに必要です。
9行目は、input要素のfile属性です。ボタンを押すとファイルを参照するダイアログを表示します。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>ファイルをアップロードするサンプル</title>
</head>
<body >
<form enctype="multipart/form-data" method="post" action="test1.php" >
<input type="file" name="file1"><br>
<input type="submit" value="アップロードする">
</form>
</body>
</html>

ファイルを受け取る画面 (test1.php)

ファイルを受け取る画面のコードです。
サンプルとしてindex.phpの画面でtest1.txtという170バイトのファイルをアップロードしました。
2-25行目は、確認のためのコードです。スーパーグローバル変数の$_FILESでアップロードしたファイルの情報を表示しています。
$_FILES['file1']のfile1は、index.phpの9行目にあるname属性の値です。
28行目は、ファイルがアップロードされたか確認しています。index.phpの画面でファイルを選択せずにアップロードのボタンを押した場合は、if文でfalseになり38行目の「ファイルがありません」が表示されます。
30行目は、一時的なファイルをアップロード先に移動しています。
→一時的なファイルを、test1.phpがあるフォルダの配下の「hozon1」フォルダにtest2.txtという名前で移動しています。
サンプルでは、D:\xampp\htdocs\testPHPにtest1.phpがあり、
D:\xampp\htdocs\testPHP\hozon1にtest2.txtがアップロードされました。
hozon1フォルダがない場合は、if文でfalseになり34行目の「アップロード失敗」が表示されます。
<?php
//アップロードしたファイル名
$a = $_FILES['file1']['name'];
echo $a; //test1.txt
echo nl2br("\n"); //改行

//一時的なファイル名
$b = $_FILES['file1']['tmp_name'];
echo $b; //D:\xampp\tmp\phpF5E8.tmp
echo nl2br("\n"); //改行

//ファイルのサイズ
$c = $_FILES['file1']['size'];
echo $c; //170
echo nl2br("\n"); //改行

//ファイルのタイプ
$d = $_FILES['file1']['type'];
echo $d; //text/plain
echo nl2br("\n"); //改行

//エラーコード
$e = $_FILES['file1']['error'];
echo $e; //0
echo nl2br("\n"); //改行


if (is_uploaded_file($b)) {

	if ( move_uploaded_file($b , './hozon1/test2.txt' )) {
		echo "アップロード成功";

	} else {
		echo "アップロード失敗";
	}

} else {
	echo "ファイルがありません";
} 
?>

リンク

以下は、PHPマニュアルのPOSTメソッドによるアップロードのリンクです。
http://php.net/manual/ja/features.file-upload.post-method.php

関連の記事

PHP フォルダ内のファイルの一覧を取得するサンプル(glob)
PHP CSVを読み込むサンプル (SplFileObject )
PHP 外部のphpファイルを読んで評価するサンプル(include/require)
PHP ファイルに書き込むサンプル (fwrite/file_put_contents)



△上に戻る