問題: ブラウザーに「[object FormData]」と表示されているにもかかわらず、jQuery AJAX リクエストを介したファイルのアップロードが失敗します空の「uploads」フォルダ
解決策: 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 中国語 Web サイトの他の関連記事を参照してください。