Ajax を使用してデータとファイルを同時にアップロードするにはどうすればよいですか?
<p>jQuery と Ajax を使用してデータとファイルを送信していますが、データとファイルの両方を 1 つのフォームで送信する方法がわかりません。 </p>
<p>現在、両方のメソッドをほぼ同じ方法で使用していますが、データを配列に収集する方法が異なり、データは <code>.serialize();</code> を使用し、ファイルは <code> を使用します。 ;= 新しい FormData($(this)[0]);</code></p>
<p>これら 2 つの方法を組み合わせて、Ajax 経由で 1 つの形式でファイルとデータをアップロードすることは可能ですか? </p>
<p><strong>データ jQuery、Ajax、html</strong></p>
<pre class="brush:php;toolbar:false;">$("form#data").submit(function(){
var formData = $(this).serialize();
$.ajax({
URL: window.location.pathname,
タイプ: 'POST'、
データ: フォームデータ、
非同期: false、
成功: 関数 (データ) {
アラート(データ)
}、
キャッシュ: false、
contentType: false、
プロセスデータ: false
});
false を返します。
});
<フォーム id="データ" メソッド="投稿">
<input type="text" name="first" value="ボブ" />
<input type="text" name="middle" value="ジェームズ" />
<input type="text" name="last" value="スミス" />
<ボタン>送信</ボタン>
</form></pre>
<p><strong>ドキュメント jQuery、Ajax、html</strong></p>
<pre class="brush:php;toolbar:false;">$("form#files").submit(function(){
var formData = 新しい FormData($(this)[0]);
$.ajax({
URL: window.location.pathname,
タイプ: 'POST'、
データ: フォームデータ、
非同期: false、
成功: 関数 (データ) {
アラート(データ)
}、
キャッシュ: false、
contentType: false、
プロセスデータ: false
});
false を返します。
});
<form id="files" method="post" enctype="multipart/form-data">
<input name="image" type="file" />
<ボタン>送信</ボタン>
</form></pre>
<p>Ajax 経由でデータとファイルを 1 つの形式で送信するには、上記をどのように組み合わせればよいですか? </p>
<p>私の目標は、これらすべてのフォームを Ajax 経由でまとめて送信できるようにすることですが、これは可能ですか?</p>
<pre class="brush:php;toolbar:false;"><form id="datafiles" method="post" enctype="multipart/form-data">
<input type="text" name="first" value="ボブ" />
<input type="text" name="middle" value="ジェームズ" />
<input type="text" name="last" value="スミス" />
<input name="image" type="file" />
<button>提交</button>
</form></pre>
<p><br /></p>