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)