簡體   English   中英

如何通過ajax調用將圖像和數據作為兩個不同的參數發送?

[英]How to send image and data as two different parameters through ajax call?

var data = new FormData()
jQuery.each(jQuery('#file')[0].files, function(i, file){
   data.append('file-'+i, file)
})    
$.ajax({
  method : 'post',
  url : SERVER,
  processData : false,
  contentType : false,
  //async : false,
  data : { id: "2458" , file : data },
  success : function(response){
     if(response.success==1){
        //do something
     }
  }
});

我需要將圖像上傳到接受圖像文件和id作為參數的第三方api。 但是,每當我嘗試使用以上代碼時,僅發送圖像對象。 我還需要發送ID。 屏幕截圖顯示僅圖像對象正在發送

快速幫助將不勝感激。

您應該僅在請求中發送FormData對象。 要添加id參數,請像對待文件一樣append()append()FormData

var data = new FormData()
$.each(jQuery('#file')[0].files, function(i, file){
   data.append('file-' + i, file)
})    
data.append('id', '2458');

$.ajax({
  method: 'post',
  url: SERVER,
  processData: false,
  contentType: false,
  data: data,
  success: function(response) {
     if (response.success == 1) { // you should change the success flag to a boolean
        //do something
     }
  }
});
var imageDetails = {};

FR.onload = function(e) {
    $('#img'+imageIndex).attr( "src",  e.target.result );
    $('#imageHolder'+imageIndex).attr('value', e.target.result );
    imageDetails.images[expectedFile.replace(/\.  [^/.]+$/, "")]=(e.target.result); 
}            

FR.readAsDataURL( target.files[0] );

jqxhr = $.ajax( {
    'url':"https://url",
    'data': JSON.stringify(imageDetails),
    'type':'post',
    'contentType': "application/json"
})

提交多部分表格以上傳文件

<form id="myForm" enctype="multipart/form-data">
    <input type="file" name="firstFile" id="file_1" data-filename="image.jpg">
    <input type="file" name="SecondFile" id="file_2" data-filename="image2.jpg">
    <button id="myFormButton">click</button>
</form>
var formData = new FormData();

$("#myFormButton").on("click", function (e) {
    e.preventDefault();
    var inputs = $("#myForm input");
    $.each(inputs, function (obj, v) {
        var file = v.files[0];
        var filename = $(v).attr("data-filename");
        var name = $(v).attr("id");
        formData.append(name, file, filename);
    });
    var xhr = new XMLHttpRequest;
    xhr.open('POST', 'your server URL', true);
    xhr.send(formData);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM