問題: 儘管瀏覽器顯示「[object FormData]」和清空「上傳」資料夾server.
解決方案:要使用jQuery AJAX 成功上傳文件,需要一個伺服器端腳本來處理上傳的文件並將其移動到所需位置。
以下更新的 jQuery 腳本指向一個名為的伺服器端 PHP 腳本"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); } }); });
以下「upload.php」腳本檢查上傳檔案中的錯誤並將其移至「uploads」目錄:
<?php if (0 < $_FILES['file']['error']) { echo 'Error: ' . $_FILES['file']['error'] . '<br>'; } else { move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']); } ?>
使用 PHP 重新命名伺服器上的檔案:
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/my_new_filename.whatever');
以上是儘管顯示'[object FormData]”,為什麼我的 jQuery AJAX 檔案上傳到 PHP 仍失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!