【问题标题】:How to post serialize object and multiple images in ajax post?如何在ajax post中发布序列化对象和多个图像?
【发布时间】:2015-08-22 09:24:32
【问题描述】:

我正在尝试通过 ajax post 将值发布到控制器。这里我的问题是我使用序列化方法来发布表单值。我也必须发送图像。如何发送图像和表单数据以及接受文件和模型值的控制器方法应该是什么?

我得到所有像这样的文本值

var files = $("#formid").serialize();

我得到这样的图像

 var form1Data = new FormData();
 var totalFiles = document.getElementById("files").files.length;
  for (var i = 0; i < totalFiles; i++) {
        var file = document.getElementById("files").files[i];
        form1Data.append("files", file);
  }

在 ajax 调用中,我必须同时发送文件和表单数据。如何发送ajax调用

 $.ajax(
         {
             url: "/Home/PostanAd/",
             type: "POST",                  
             data: { form1Data: form1Data, files: files },
             contentType: false,
             processData: false,
         });

有人可以提出答案吗?

【问题讨论】:

标签: jquery ajax asp.net-mvc-4


【解决方案1】:
var formData = new FormData();

//对于您的每个表单输入,请使用此行

form_data.append("name1", $("#id1").val());

//现在将所有图像添加到表单数据对象

var totalFiles = document.getElementById("files").files.length;
for (var i = 0; i < totalFiles; i++) {
    var file = document.getElementById("files").files[i];
    formData.append("files[]", file);  //Use [] to add multiple.
}

//然后只需使用数据进行简单的ajax调用:仅formData

$.ajax(
            {
                url: "/Home/PostanAd/",
                type: "POST",

                data: formdata,
                contentType: false,
                processData: false,

【讨论】:

  • 如何获取模型中的值?还是我应该使用 httppostedfilebase??
  • 您可以使用 $_FILE 来读取上传的文件。并运行 for 循环以访问所有文件
  • @user3518928,你有没有看过我上面给你的链接?它只是var formdata = new FormData($('form').get(0));data: formdata,(一行代码序列化了所有表单值和所有文件!)
猜你喜欢
  • 1970-01-01
  • 2020-01-05
  • 1970-01-01
  • 2017-05-11
  • 2013-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多