• 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);
                }
            }
  • 相关阅读:
    .net测试篇之Moq行为配置
    .net测试篇之Moq框架简单使用
    .net测试篇之测试神器Autofixture在几个复杂场景下的使用示例以及与Moq结合
    .net测试篇之测试神器Autofixture Generator使用与自定义builder
    .net测试篇之测试神器Autofixture基本配置一
    .net测试篇之单元测试/集成测试神器Autofixture
    .netcore持续集成测试篇之web项目验收测试
    .netcore持续集成测试篇之 .net core 2.1项目集成测试
    .netcore持续集成测试篇之MVC层单元测试
    .netcore持续集成测试篇之测试方法改造
  • 原文地址:https://www.cnblogs.com/zxg-blog/p/6743094.html
Copyright © 2020-2023  润新知