关于ajax提交Form同时上传文件

我们在使用ajax提交表单时,如果想同时上传表单文件,正常提交时后台接受File值为空,如需提交时携带文件,可使用FormData,代码如下:

JSP:
<form id= "index_form"   name= "index_form"   role= "form"   method= "post"   class = "form-horizontal"   enctype= "multipart/form-data" >

      <table>
           <tr>  <td> 图片一 : <input id="pic1" name="pic1" type="file" onchange="pic1()"/> </td>  </tr>
           <tr> <td>  用户名 : <input id="pic2" name="pic2"  type="text" /> </td>   </tr>
           <tr> <td>  密码: <input id="pic3" name="pic3"   type="text" /></td>  </tr>                     
      </table>
<input  value="提交" type="submit" />
</form>


JS:

var file =  $("#fileId").get(0).files[0];

var formData = new FormData(); 

formData.append("file",file);

$.ajax({
       url:uploadFileUrl,
       type:"POST",
       async : false,
       dataType:"json",
       data:formData,
       contentType: false,
       processData: false,
       success:function(data) {
     }

});

var artform = $("#expert_form").serialize()";

  $.ajax({
cache : true,
type : "post",
url : submitFormUrl,
data : artform,
async : false,
success : function(data) {

},
error : function(request) {

}

   });

action: 

需要两个action,一个为上传文件的action,一个为提交表单的action。

注意:如果用两个ajax(一个上传文件,一个提交表单),需设置 async : false,

ajax方法默认是异步执行的,即不管有没返回结果都可以继续往下执行
要想等ajax方法返回结果再执行下面的方法,需要设置为同步async:false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值