ホームページ >バックエンド開発 >PHPチュートリアル >PHP でファイルをアップロードすると「未定義の変数: HTTP_POST_FILES」エラーが発生するのはなぜですか?
PHP を使用したファイルのアップロード:「未定義の変数: HTTP_POST_FILES」エラーのトラブルシューティング
PHP を使用したサーバーへのファイルのアップロードは簡単なプロセスです。ただし、プロセス中に発生する可能性のあるエラーに対処することが重要です。
問題:
PHP を使用してファイルをアップロードしようとすると、エラーが発生します:「通知: 未定義の変数: HTTP_POST_FILES".
原因:
$HTTP_POST_FILES 変数は、アップロードされたファイル情報を格納するグローバル配列を参照します。ただし、PHP 4.1.0 以降は非推奨となっており、使用はお勧めできません。
解決策:
最新の PHP バージョンでは、アップロードされたファイル データにアクセスするための異なる構造が必要です。 $HTTP_POST_FILES の代わりに、次の方法を使用します:
$_FILES["file_name"]["key"]
ここで:
コード例:
次の改良された PHP コードは、ファイル アップロードのベスト プラクティスに従っています:
$target_dir = "upload/"; $target_file = $target_dir . basename($_FILES["filename"]["name"]); $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); $allowedTypes = ['jpg', 'png']; if (isset($_POST["submit"])) { // Check file type if (!in_array($imageFileType, $allowedTypes)) { echo "Type is not allowed"; } // Check if file already exists elseif (file_exists($target_file)) { echo "Sorry, file already exists."; } // Check file size elseif ($_FILES["filename"]["size"] > 5000000) { echo "Sorry, file is too large."; } else { // Upload file if (move_uploaded_file($_FILES["filename"]["tmp_name"], $target_file)) { echo "File uploaded successfully."; } } }
以上がPHP でファイルをアップロードすると「未定義の変数: HTTP_POST_FILES」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。