form序列化时向后台传递file文件

8 篇文章 0 订阅

1、form中,有文件上传输入,

<form action="/task/xxxController" enctype="multipart/form-data" id="mainForm" method="post" >

<input id="FileUpload" type="file" name="files" />

</form>

2、如此上传文件后,使用$("#mainForm").submit(); 提交后,在后台Controller中获取文件即可,

获取方式为:

HttpPostedFileBase file = Request.Files["files"];

其中,[]中为input的名字。

3、后期,为了在提交form时做其他处理,将提交方式修改为下面这种方式:

$.ajax({

                                cache: true,

                                type: "POST",

                                url:"/task/xxxController",

                                data:$('#mainForm').serialize(),

                                async: false,

                                error: function(request) {

                                    alert("工单保存错误!");

                                },

                                success: function(data) {

                                    /alert("form 提交成功!");

                           }

                    });

修改后发现,在后台中,无法获得文件了,即$('#mainForm').serialize(),无法序列化文件。

 

4、最后,为了能够序列化文件将之传递到后台,使用如下方式处理:

var formData = new FormData($("#mainForm")[0]);

                            $.ajax({

                                cache: true,

                                type: "POST",

                               url:"/task/xxxController",

                                data: formData,

                                async: false,

                                contentType: false,

                                processData: false,

                                error: function (request) {

                                    alert("工单保存错误!");

                                },

                                success: function (data) {

                                    alert("form 提交成功!");

                                }

 

                            });

使用FormData的方式序列化form,可以将之传递到后台,另外,processData需要设置。

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值