【php】ファイルアップロード時のエラーコードとエラーメッセージ
ファイルのアップロードを扱うときは、$_FILES[“file”][‘error’]の値を見ると、正常にファイルが送信されてきたかどうかわかる。
$_FILES[‘file’][‘error’]の値を見てエラーメッセージを作成してみる例。
//<input type="file" name="name_of_file" /> $messages = array(); switch ($_FILES["name_of_file"]['error']) { case UPLOAD_ERR_OK: //値: 0; この場合のみ、ファイルあり break; case UPLOAD_ERR_INI_SIZE: //値: 1; アップロードされたファイルは、php.ini の upload_max_filesize ディレクティブの値を超えています(post_max_size, upload_max_filesize) $messages[] = 'アップロードされたファイルが大きすぎます。' . ini_get('upload_max_filesize') . '以下のファイルをアップロードしてください。'; break; case UPLOAD_ERR_FORM_SIZE: //値: 2; アップロードされたファイルは、HTML フォームで指定された MAX_FILE_SIZE を超えています。 $messages[] = 'アップロードされたファイルが大きすぎます。' . ($_POST['MAX_FILE_SIZE'] / 1000) . 'KB以下のファイルをアップロードしてください。'; break; case UPLOAD_ERR_PARTIAL: //値: 3; アップロードされたファイルは一部のみしかアップロードされていません。 $messages[] = 'アップロードに失敗しています(通信エラー)。もう一度アップロードをお試しください。'; break; case UPLOAD_ERR_NO_FILE: //値: 4; ファイルはアップロードされませんでした。(この場合のみ、ファイルがないことを表している) $messages[] = 'ファイルをアップロードしてください'; break; case UPLOAD_ERR_NO_TMP_DIR: //値: 6; テンポラリフォルダがありません。PHP 4.3.10 と PHP 5.0.3 で導入されました。 $messages[] = 'アップロードに失敗しています(システムエラー)。もう一度アップロードをお試しください。'; break; default: //UPLOAD_ERR_CANT_WRITE 値: 7; ディスクへの書き込みに失敗しました。PHP 5.1.0 で導入されました。 //UPLOAD_ERR_EXTENSION 値: 8; ファイルのアップロードが拡張モジュールによって停止されました。 PHP 5.2.0 で導入されました。 //何かおかしい $messages[] = 'アップロードファイルをご確認ください。'; break; } if (!$messages && !is_uploaded_file($_FILES["name_of_file"]['tmp_name'])) { //何か妙なことがおきているようだ $messages[] = 'アップロードファイルをご確認ください。'; } if (!$messages) { //ここまででエラーメッセージがなければ処理を進める //処理続行... }
gifu 2010年4月14日 17:34
エラーNoに5がないのはなんでだろう、とか思ったことがあります。