Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat Ralat \'Undefined variable: HTTP_POST_FILES\' Semasa Memuat Naik Fail dalam PHP?

Mengapa Saya Mendapat Ralat \'Undefined variable: HTTP_POST_FILES\' Semasa Memuat Naik Fail dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-12-10 01:57:09342semak imbas

Why Am I Getting the

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:

  • file_name ialah nama medan input tempat fail dipilih.
  • kunci ialah aspek khusus fail yang sedang diakses (cth., "nama", "jenis", "saiz", "tmp_name").

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn