pgintro.net

PHP ファイルアップロード処理サンプル

作成日時:2019/04/28

更新日時:2019/08/19

スポンサーリンク

この記事の確認環境

phpversion() : 7.2.7

ini.sect.file-uploads

https://www.php.net/manual/ja/ini.core.php#ini.sect.file-uploads

キー説明
file_uploadsファイルアップロードを有効にするか。
upload_tmp_dirファイルアップロード時にtmpファイルの保存に使用するディレクトリ
max_input_nesting_level$_POST変数等のネスト深さの最大値を指定します。
max_input_vars入力された変数を受け取る最大値を指定します。
upload_max_filesizeアップロードファイルのサイズ最大値を指定します。
max_file_uploads同時にアップロード可能なファイル数を指定します。
ini_get('file_uploads');
ini_get('upload_tmp_dir');
ini_get('max_input_nesting_level');
ini_get('max_input_vars');
ini_get('upload_max_filesize');
ini_get('max_file_uploads');

エラー

https://www.php.net/manual/ja/features.file-upload.errors.php

キー
UPLOAD_ERR_OK0
UPLOAD_ERR_INI_SIZE1
UPLOAD_ERR_FORM_SIZE2
UPLOAD_ERR_PARTIAL3
UPLOAD_ERR_NO_FILE4
UPLOAD_ERR_NO_TMP_DIR6
UPLOAD_ERR_CANT_WRITE7
UPLOAD_ERR_EXTENSION8

UPLOAD_ERR_FORM_SIZE

ファイル用のinput前に以下の記述にてファイルサイズ上限の指定を行うと、本エラーコードが格納される。
<input type="hidden" name="MAX_FILE_SIZE" value="1000">

form

テストフォーム

単一ファイル

複数ファイル(multipleなし)

複数ファイル(multipleなし)

複数ファイル(multipleあり)

アップロード後の処理

is_uploaded_file()

https://www.php.net/manual/ja/function.is-uploaded-file.php

move_uploaded_file()

https://www.php.net/manual/ja/function.move-uploaded-file.php

https://www.php.net/manual/ja/features.file-upload.post-method.php

if(is_uploaded_file($_FILES['sample_single']['tmp_name']))
{
  if(move_uploaded_file($_FILES['sample_single']['tmp_name'],"./image/".$_FILES['sample_single']['name'])){
  error_log('uploaded success!');
  }else{
  error_log('uploaded fail!');
  }
}