zoukankan      html  css  js  c++  java
  • ajax同时提交表单且包含文件

    说明一下: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);
                }
            }
  • 相关阅读:
    深入了解SQLServer系统数据库工作原理(转)
    什么是动态语言(转)
    ASP.NET 2.0客户端回调的实现分析
    什么是“分布式应用系统”
    SQLServer数据库安全管理机制详解
    什么是 CLR(转)
    docker容器下的asp.net core项目发布运维
    VLAN技术
    用getDrawingCache方法获取ImageView中的图像需要注意的问题
    交换机的工作原理
  • 原文地址:https://www.cnblogs.com/zxg-blog/p/6743094.html
Copyright © 2011-2022 走看看