PHP ファイルをアップロードする(formでsubmit)

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

確認環境
・PHP 7
・Windows 10

目次

サンプル ファイルをアップロードする画面 (index.php)
  ファイルを受け取る画面 (test1.php)

環境

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

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

ファイルをアップロードする画面のコードです。文字コードはutf-8です。

<!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>

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

画面のイメージは以下です。

 

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

ファイルを受け取る画面のコードです。

<?php
$file1 = $_FILES['file1']['tmp_name'];

if (is_uploaded_file($file1)) {
	if (move_uploaded_file($file1, './hozon1/test2.txt')) {
		echo "アップロード成功";
	} else {
		echo "アップロード失敗";
	}
} else {
	echo "ファイルがありません";
}

//アップロードしたファイル名
print ($_FILES['file1']['name']);//test1.txt
//一時的なファイル名
print ($_FILES['file1']['tmp_name']);//D:\xampp\tmp\php7760.tmp
//ファイルのサイズ
print ($_FILES['file1']['size']);//49
//ファイルのタイプ
print ($_FILES['file1']['type']);//text/plain
//エラーコード
print ($_FILES['file1']['error']);//0

2行目は、一時的なファイル名を取得しています。
4行目は、is_uploaded_fileでファイルがある場合trueになります。
5行目は、move_uploaded_fileで一時的なファイルを、「hozon1」フォルダにtest2.txtという名前で移動しています。
D:\xampp\htdocs\testPHP\hozon1にtest2.txtがアップロードされました。

14-23行目は、アップロードしたファイルの情報です。
$_FILESは、スーパーグローバル変数でファイルの情報を表示します。

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

関連の記事

PHP フォルダ/ファイルの一覧を取得(glob)
PHP CSVファイルの読み込みと書き込み
PHP includeとrequireの違い(ファイルを読み込む)
PHP ファイルの読み込みと書き込み(fgets/fwrite)

△上に戻る