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
Lepaskan: 2024-12-10 01:57:09
asal
408 orang telah melayarinya

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"]
Salin selepas log masuk

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.";
        }
    }
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan