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);
                }
            }
  • 相关阅读:
    帝国cms在任意位置调用指定id的栏目名称和链接
    Sublime Text 2中前端必备的常用插件
    sublime text 2代码片段(Snippet)功能的使用
    写好PPT的四大要点
    解码郭台铭语录,50句你应该知道的“郭台铭语录”
    java.sql.SQLSyntaxErrorException: Table 'demo.hibernate_sequence' doesn't exist
    Caused by: java.lang.IllegalArgumentException: Not a managed type: class com.example.demo.domain.DeptInfo
    com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别
    Spring Boot引入Lombok
    Spring Boot(二)jpa操作数据库
  • 原文地址:https://www.cnblogs.com/zxg-blog/p/6743094.html
Copyright © 2011-2022 走看看