jQuery シリアル化を使用したファイルのアップロード
jQuery の Serialize() 関数を使用してファイル アップロード フィールドを含むフォームを送信する場合、ファイル データを取得できます。挑戦的。他のフォーム要素とは異なり、ファイル入力を文字列にシリアル化することはできません。
この制限を回避するには、FormData オブジェクトを利用できます。 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) { } }); });
Withこのアプローチでは、FormData コンストラクターはファイル入力を含むすべてのフォーム要素をキャプチャします。 processData を false に設定し、contentType を false に設定すると、jQuery はデータのシリアル化を試みなくなり、ブラウザーがファイルのアップロードを正しく処理できるようになります。
サーバー側では、ファイル データは$_FILES スーパーグローバル配列。従来のファイル アップロード シナリオと同様です。
以上がjQuery を使用して FormData でのファイル アップロードを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。