ホームページ >バックエンド開発 >PHPチュートリアル >jQuery Ajax を使用してファイル アップロード フォームを送信するにはどうすればよいですか?

jQuery Ajax を使用してファイル アップロード フォームを送信するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-11 07:58:11489ブラウズ

How to Submit a File Upload Form Using jQuery Ajax?

jQuery シリアル化を使用したファイルのアップロード

jQuery シリアル化関数を使用して Ajax 経由で送信するフォームがあります。ただし、フォームに が含まれていると問題が発生します。分野。シリアル化されたフォーム データにはファイルが含まれていないため、$_FILES を印刷すると空の結果が得られます。

解決策: FormData オブジェクトの使用

この問題を解決するには、FormData オブジェクトを利用できます。ファイル入力を含むあらゆるフォーム タイプと互換性があります。実装方法は次のとおりです。

$(document).on("submit", "form", function(event) {
    event.preventDefault();
    $.ajax({
        url: $(this).attr("action"),
        type: $(this).attr("method"),
        dataType: "JSON",
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function (data, status) {

        },
        error: function (xhr, desc, err) {
            
        }
    });        
});

FormData オブジェクトを使用すると、Ajax リクエストで他のフォーム データとともにファイルを渡すことができます。 processData オプションと contentType オプションは false に設定され、jQuery がデータとコンテンツ タイプを処理できないようにし、ブラウザーがフォーム送信を正しく処理できるようにします。

以上がjQuery Ajax を使用してファイル アップロード フォームを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。