首頁 >後端開發 >php教程 >儘管顯示'[object FormData]”,為什麼我的 jQuery AJAX 檔案上傳到 PHP 仍失敗?

儘管顯示'[object FormData]”,為什麼我的 jQuery AJAX 檔案上傳到 PHP 仍失敗?

Susan Sarandon
Susan Sarandon原創
2024-12-28 03:51:09860瀏覽

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

PHP 中的jQuery AJAX 檔案上傳

問題: 儘管瀏覽器顯示「[object FormData]」和清空「上傳」資料夾server.

解決方案:要使用jQuery AJAX 成功上傳文件,需要一個伺服器端腳本來處理上傳的文件並將其移動到所需位置。

更新的 jQuery 腳本

以下更新的 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);
        }
    });
});

伺服器端 PHP腳本

以下「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']);
}
?>

其他注意事項

  • 確保您已「uploads」目錄的正確伺服器路徑。
  • 確保「uploads」目錄可寫入。
  • 檢查您的 PHP 配置中的「upload_max_filesize」和「post_max_size」以確保您的測試檔案不要超過這些限制。

使用伺服器端重新命名檔案腳本

使用 PHP 重新命名伺服器上的檔案:

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

以上是儘管顯示'[object FormData]”,為什麼我的 jQuery AJAX 檔案上傳到 PHP 仍失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn