Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memuat Naik Fail dengan betul dalam PHP dan Mengendalikan Ralat Berpotensi?

Bagaimana untuk Memuat Naik Fail dengan betul dalam PHP dan Mengendalikan Ralat Berpotensi?

Patricia Arquette
Lepaskan: 2024-12-09 13:02:18
asal
574 orang telah melayarinya

How to Correctly Upload Files in PHP and Handle Potential Errors?

Muat naik Fail Menggunakan PHP

Memuat naik fail ke folder tertentu ialah tugas biasa dalam banyak aplikasi web. Soalan ini meneroka blok kod PHP mudah yang bertujuan untuk mencapai tugas ini.

$folder = "upload/";
if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'])) {   
    if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder . $HTTP_POST_FILES['filename']['name'])) {
         echo "File uploaded";
    } else {
         echo "File not moved to destination folder. Check permissions";
    };
} else {s
     echo "File is not uploaded";
}; 
Salin selepas log masuk

Walau bagaimanapun, selepas pelaksanaan, ralat berlaku:

Notice: Undefined variable: HTTP_POST_FILES in C:\wamp\www\sdg\import\ips.php on line 3
Salin selepas log masuk

Penyelesaian:

Ralat disebabkan oleh penggunaan pembolehubah yang ditamatkan $HTTP_POST_FILES. Sebaliknya, gunakan $_FILES:

$folder = "upload/";
if (is_uploaded_file($_FILES['filename']['tmp_name'])) {   
    if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder . $_FILES['filename']['name'])) {
         echo "File uploaded";
    } else {
         echo "File not moved to destination folder. Check permissions";
    };
} else {s
     echo "File is not uploaded";
}; 
Salin selepas log masuk

Kod PHP Dipertingkat:

Kod PHP dipertingkat berikut menawarkan ciri yang dipertingkatkan, termasuk pemeriksaan jenis dan pengesahan saiz fail:

$target_dir = "upload/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
$allowedTypes = ['jpg', 'png'];

if (isset($_POST["submit"])) {
    // Check file type
    if (!in_array($imageFileType, $allowedTypes)) {
        $msg = "Type is not allowed";
    } 
    // Check if file exists
    elseif (file_exists($target_file)) {
        $msg = "Sorry, file already exists.";
    } 
    // Check file size
    elseif ($_FILES["fileToUpload"]["size"] > 5000000) {
        $msg = "Sorry, your file is too large.";
    } 
    // Move file
    elseif (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        $msg = "The file " . basename($_FILES["fileToUpload"]["name"]) . " has been uploaded.";
    }
}
?>
Salin selepas log masuk

HTML Kod:

<form action="upload.php" method="post">
Salin selepas log masuk

Kod yang dipertingkatkan ini memastikan bahawa hanya jenis fail yang dibenarkan dimuat naik, menghalang nama fail pendua dan mengehadkan saiz fail untuk mengelak daripada membebankan pelayan anda.

Atas ialah kandungan terperinci Bagaimana untuk Memuat Naik Fail dengan betul dalam PHP dan Mengendalikan Ralat Berpotensi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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