Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Fail AJAX jQuery Saya Muat Naik ke PHP Gagal Walaupun Menunjukkan '[objek FormData]'?

Mengapa Fail AJAX jQuery Saya Muat Naik ke PHP Gagal Walaupun Menunjukkan '[objek FormData]'?

Susan Sarandon
Susan Sarandonasal
2024-12-28 03:51:09963semak imbas

Why Does My jQuery AJAX File Upload to PHP Fail Despite Showing

Muat Naik Fail AJAX jQuery dalam PHP

Masalah: Memuat naik fail melalui permintaan jQuery AJAX gagal walaupun pelayar menunjukkan "[objek FormData]" dan kosongkan folder "muat naik" pada pelayan.

Penyelesaian: Untuk berjaya memuat naik fail menggunakan jQuery AJAX, skrip sebelah pelayan diperlukan untuk mengendalikan fail yang dimuat naik dan mengalihkannya ke lokasi yang dikehendaki.

Skrip jQuery yang dikemas kini

Skrip jQuery yang dikemas kini berikut menghala ke skrip PHP sebelah pelayan yang dipanggil "upload.php":

$("#upload").on("click", function() {
    var file_data = $("#sortpicture").prop("files")[0];
    var form_data = new FormData();
    form_data.append("file", file_data);
    $.ajax({
        url: 'upload.php',
        dataType: 'text',
        cache: false,
        contentType: false,
        processData: false,
        data: form_data,
        type: 'post',
        success: function(php_script_response){
            alert(php_script_response);
        }
    });
});

Skrip PHP Bahagian Pelayan

Skrip "upload.php" berikut menyemak ralat dalam fail yang dimuat naik dan mengalihkannya ke direktori "muat naik" :

<?php
if (0 < $_FILES['file']['error']) {
    echo 'Error: ' . $_FILES['file']['error'] . '<br>';
} else {
    move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
?>

Pertimbangan Tambahan

  • Pastikan anda mempunyai laluan pelayan yang betul ke direktori "muat naik".
  • Pastikan direktori "muat naik" boleh ditulis.
  • Semak konfigurasi PHP anda untuk "upload_max_filesize" dan "post_max_size" untuk memastikan fail ujian anda jangan melebihi had ini.

Menamakan semula Fail Menggunakan Bahagian Pelayan Skrip

Untuk menamakan semula fail pada pelayan menggunakan PHP:

move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');

Atas ialah kandungan terperinci Mengapa Fail AJAX jQuery Saya Muat Naik ke PHP Gagal Walaupun Menunjukkan '[objek FormData]'?. 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