ファイルデータをいくつかの通常のデータ、つまりajax呼び出しでフォームなしで追加するにはどうすればよいですか?私は私のAJAXのスクリプトを持っている 電流がFormDataを使用せずにajax呼び出しでファイルデータを追加する方法は?
$("body").on("click", "#next-step", function(event){
$("#loader").show();
event.preventDefault();
var file = $("#upload_logo")[0].files[0];
$.ajax({
type: 'POST',
url: 'step-two.php',
data:{
name : "my name",
},
file : {upload_logo : file},
contentType: false,
processData: false,
success: function(response)
{
$("#loader").hide();
alert(response);
}
})
});
私は解決策を見つけたが、それは私はそれが
event.preventDefault();
var fdata = new FormData()
if($("#upload_logo")[0].files.length>0)
fdata.append("upload_logo",$("#upload_logo")[0].files[0])
$.ajax({
type: 'POST',
url: 'step-two.php',
data:{fdata},
を働きたい方法ではありませんそして、それは動作しますが、私の質問は、どのような場合、私はちょうどですどのように私はこれを行うことができますデータ内のファイルを追加したいですか?代わりにFormData()を使用する代わりに?
?それはファイルアップロードの受け入れられた方法です。他の何かをすることは、古い技術を使用している。 –
あなたは正しいです、私は知りたいのは、単にデータフィールドに通常の入力フィールドを追加するのと同じように、ファイルフィールドを追加することができないということですか?なぜなら、私は最初のコードファイル({upload_logo:file})と同じようにどこでも見つけることができないからです。 –
はい、POST要求の一部としてファイル内のデータを転送するには、FormDataを使用する必要があります。データをファイルの内容と混在させることもできます。データ:{名前: '私の名前'、fileContent:fdata} –