说明一下:FormData对象是html5的一个对象,目前的一些主流的浏览器都已经兼容。ie8暂时不支持,不支持FormData的,可以使用方法二,下面会介绍。接着说FormData,它是一个html5的javascript对象,非常的强大。废话不说,直接上代码

方法1

var formData = new FormData($("#passengerForm")[0]);//此处id为form表单的id

$.ajax({  
                      url: "${basePath}/order/importPassengerExcel.json" ,  
                      type: 'POST',  
                      data: formData,  
                      async: false,  
                      cache: false,  
                      contentType: false,  
                      processData: false,  
                      success: function (data) {  
                          if(data.messageFlag.flag=="1"){
                          
                           layer.msg("导入成功",{time:2000});
                      }else{
                              layer.msg("导入错误",{time:2000});
                          }
                      },  
                      error: function (data) {  
                          layer.msg("导入错误",{time:2000});
                      }  
                 });

方法2

使用jquery.form.js(可以具体查看api)

<form id="tf">
<input type="file" name="img"/>
<input type="text" name="username"/>
<input type="button" value="提" onclick="test();"/>
</form>
$("#tf").ajaxSubmit();

后台代码
if (certificate==null ||certificate.isEmpty()) {
        } else {
            // 获取上传文件的名称
            String fileName = certificate.getOriginalFilename();
            // 获取图片的扩展名
            String extensionName = fileName
                    .substring(fileName.lastIndexOf(".") + 1);
            // 重命名上传后的文件名
            String imgname = MD5.encrypt(UUID.randomUUID().toString()) + "."
                    + extensionName;
            try {
                String imgPath = PropertyUtils.getValue("sftpdirectory_images");
                File targetFile = new File(imgPath, imgname);
    if (!targetFile.exists()) {//此处判断不是特别理解
                    targetFile.mkdirs();
                    certificate.transferTo(targetFile);
                } else {
                    logger.error("上传失败");
                }
                saveImgUrl = imgname;
            } catch (Exception e) {
                flag="2";
                logger.error("上传失败", e);
            }
        }

ajax同时提交表单且包含文件的更多相关文章

  1. Ajax实现提交表单时验证码自动验证(原创自Zjmainstay)

    本文通过源码展示如何实现表单提交前,验证码先检测正确性,不正确则不提交表单,更新验证码. 1.前端代码 index.html <!DOCTYPE html> <html> &l ...

  2. ASP.NET MVC 网站开发总结(五)——Ajax异步提交表单之检查验证码

    首先提出一个问题:在做网站开发的时候,用到了验证码来防止恶意提交表单,那么要如何实现当验证码错误时,只是刷新一下验证码,而其它填写的信息不改变? 先说一下为什么有这个需求:以提交注册信息页面为例,一般 ...

  3. 使用ajax异步提交表单

    虽然这篇文章的标题是提交表单,但是主要的难点在于使用ajax提交文本域的内容, 在工作中的经常会需要ajax跨域的问题,通常的需求使用jsonp就可以得到解决,但是当前项目中有一个图片服务器,客户端需 ...

  4. jquery ajax异步提交表单数据

    使用jquery的ajax方法可以异步提交表单,成功后后台返回json数据,回调函数处理,可以不用刷新页面,达到异步的目的: 处理表单的数据可以用serialize()方法进行序列化,而如果提交的数据 ...

  5. 关于ajax直接提交表单jQuery .validator验证不起作用问题

    之前用$.ajax(function(){});直接提交表单,而表单验证不通过也能提交. $(document).ready(function(){ $.ajax({       url:" ...

  6. Asp.net Mvc Ajax.BeginForm提交表单

    之前Mvc中一直用Html.BeginForm提交表单,即如下: @using (Html.BeginForm("Add", "News", FormMetho ...

  7. tp5中ajax方式提交表单

    用ajax提交表单,迅速,快捷,实现页面无刷新提交表单. <!DOCTYPE html> <html lang="en"> <head> < ...

  8. Django ajax方法提交表单,及后端接受数据

    前台代码: {% block content %} <div class="wrapper wrapper-content"> <div class=" ...

  9. 通过ajax提交表单上传文件

    //这是看的大神的.//原地址:https://www.cnblogs.com/kissdodog/archive/2012/12/15/2819025.html $("#sub" ...

随机推荐

  1. 从DataTable高效率导出数据到Excel

    首先从数据库读取数据到DataTable,这我就不提了,大家都明白.下面直接介绍如何从DataTable高效率导出数据到Excel中的方法,代码如下: using Microsoft.Office.I ...

  2. ZBrush中标准笔刷介绍

    ZBrush最实用.精彩的部分便是雕刻了,笔刷又有时雕刻时必不可少的工具,ZBrush中给我们提供了很多种笔刷,那么,最基础.最常用的笔刷是什么呢,本文内容向大家介绍ZBrush®中标准笔刷以便大家熟 ...

  3. 常用的GNOME Shell 扩展

    GNOME Shell(即GNOME 3)桌面环境最初进军Linux世界时,众多批评人士指出其灵活性有所欠缺.当初外观有所突破的GNOME确实会给生产效率带来一些影响,然而它多年来一直默默通过多种方式 ...

  4. 洛谷P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 状压动归

    考场上空间开大了一倍就爆0了QAQ- Code: #include<cstdio> #include<algorithm> #include<cmath> usin ...

  5. Iterator与Asyc/Await的实现

    https://wanago.io/2018/04/23/demystifying-generators-implementing-async-await/

  6. [LUOGU]3919 【模板】可持久化数组

    用可持久化线段树维护可持久化数组.可持久化线段树见之前发的主席树模板 #include <iostream> #include <cstdio> #include <cs ...

  7. UDP Linux编程(客户端&服务器端)

    服务器端 服务器不用绑定地址,他只需要进行绑定相应的监听端口即可. #include <sys/types.h> #include <sys/socket.h> #includ ...

  8. l洛谷 P2326 AKN’s PPAP

    P2326 AKN’s PPAP 题目描述 “I have a pen,I have an apple.Eh,Apple-Pen!. I have a pen,I have pineapple.En, ...

  9. [转]收集android上开源的酷炫的交互动画和视觉效果

    原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...

  10. [环境搭建] VS-Visual Studio-IIS Express 支持局域网訪问

    原创作品,转载请注明出处:http://blog.csdn.net/qiujuer/article/details/40350385 使用Visual Studio开发Web网页的时候有这种情况:想要 ...