Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat Ralat \'Undefined variable: HTTP_POST_FILES\' Semasa Memuat Naik Fail dalam PHP?
Muat naik Fail Menggunakan PHP: Menyelesaikan Masalah "Undefined Variable: HTTP_POST_FILES" Ralat
Memuat naik fail ke pelayan menggunakan PHP boleh menjadi proses yang mudah . Walau bagaimanapun, adalah penting untuk menangani sebarang ralat yang mungkin timbul semasa proses.
Masalah:
Ralat berlaku apabila cuba memuat naik fail menggunakan PHP: "Notis: Pembolehubah tidak ditentukan: HTTP_POST_FILES".
Punca:
Pembolehubah $HTTP_POST_FILES merujuk kepada tatasusunan global yang menyimpan maklumat fail yang dimuat naik. Walau bagaimanapun, ia telah ditamatkan sejak PHP 4.1.0 dan tidak disyorkan untuk digunakan.
Penyelesaian:
Versi PHP moden mengharapkan struktur berbeza untuk mengakses data fail yang dimuat naik. Daripada $HTTP_POST_FILES, gunakan metodologi berikut:
$_FILES["file_name"]["key"]
Di mana:
Kod Contoh:
Kod PHP yang dipertingkatkan berikut mematuhi amalan terbaik untuk memuat naik fail:
$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."; } } }
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Undefined variable: HTTP_POST_FILES\' Semasa Memuat Naik Fail dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!