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 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 "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']); } ?>
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!