ajax实现文件上传,多文件上传,追加参数

摘要:
dest.getParentFile().exists()){//判断文件父目录是否存在dest.getParentFile().mkdir();}try{file.transferTo;}catch{//TODOAuto-generatedcatchblocke.printStackTrace();return"false";}}}return"true";}单个文件上传方式处理:@RequestMapping@ResponseBodypublicStringupload{StringcontentType=file.getContentType();StringfileName=file.getOriginalFilename();/**System.out.println;*System.out.println;*/StringfilePath=request.getSession().getServletContext().getRealPath;try{uploadFile;}catch{//TODO:handleexception}//返回jsonSystem.out.println("上传成功!

1.html部分实现代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form id= "uploadForm">  
      <p >指定文件名: <input type="text" name="filename" value= ""/></p >  
      <p >上传文件: <input type="file" name="file1"    multiple="multiple"  /></p> 
      <p >上传文件: <input type="file" name="file2"   /></p> 
      <p >上传文件: <input type="file" name="file3"   /></p>  
      <input type="button" value="上传" onclick="doUpload()" />  
</form>  
<script type="text/javascript" src="http://t.zoukankan.com/lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://t.zoukankan.com/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="http://t.zoukankan.com/js/common.js"></script>    
<script type="text/javascript">
//获取token
var token = parent.window.document.getElementById("token").value;    
    
functiondoUpload() {  
    var formData = newFormData();
    formData.append("token", token);
    formData.append("file1", $('#file1')[0].files[0]);
    formData.append("file2", $('#file2')[0].files[0]);
    formData.append("file3", $('#file3')[0].files[0]);
    $.ajax({  
         url: 'bookController/uploadMult',  
         type: 'post',  
         data: formData,  
         cache: false,
         processData: false,
         contentType: false,
         async: false}).done(function(res) {
        
    }).fail(function(res) {
        
    });
}


</script>  
</body>
</html>

2.后台部分:

多文件上传方式处理:

    @RequestMapping(value = "/uploadMult", method =RequestMethod.POST)
    @ResponseBody
    publicString uploadMult(HttpServletRequest request) {
         //转型为MultipartHttpRequest:   
        MultipartHttpServletRequest multipartRequest =(MultipartHttpServletRequest) request;   
        //获得文件:   
        List<MultipartFile> files = multipartRequest.getFiles("file1");
        List<MultipartFile> files2 = multipartRequest.getFiles("file2");
        List<MultipartFile> files3 = multipartRequest.getFiles("file3");

        if(files.isEmpty()) {
            return "false";
        }

        String path = "F:/test";

        for(MultipartFile file : files) {
            String fileName =file.getOriginalFilename();
            int size = (int) file.getSize();
            System.out.println(fileName + "-->" +size);

            if(file.isEmpty()) {
                return "false";
            } else{
                File dest = new File(path + "/" +fileName);
                if (!dest.getParentFile().exists()) { //判断文件父目录是否存在
dest.getParentFile().mkdir();
                }
                try{
                    file.transferTo(dest);
                } catch(Exception e) {
                    //TODO Auto-generated catch block
e.printStackTrace();
                    return "false";
                }
            }
        }
        return "true";
    }

单个文件上传方式处理:

    @RequestMapping(value = "/upload", method =RequestMethod.POST)
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
        String contentType =file.getContentType();
        String fileName =file.getOriginalFilename();
        /** System.out.println("fileName-->" + fileName);
         * System.out.println("getContentType-->" + contentType);
         */String filePath = request.getSession().getServletContext().getRealPath("upload/");
        try{
            uploadFile(file.getBytes(), filePath, fileName);
        } catch(Exception e) {
            //TODO: handle exception
}
        //返回json
        System.out.println("上传成功!");
        return "true";
    }
    
    public static void uploadFile(byte[] file, String filePath, String fileName) throwsException {
        File targetFile = newFile(filePath);
        if (!targetFile.exists()) {
            targetFile.mkdirs();
        }
        FileOutputStream out = new FileOutputStream(filePath +fileName);
        out.write(file);
        out.flush();
        out.close();
    }

springboot文件上传参数配置:在application.properties文件中配置上传大小限制:

#文件上传
#Spring Boot 1.3.x或者之前

multipart.maxFileSize=800Kbmultipart.maxRequestSize=1000Mb


#Spring Boot 1.4.x或者之后

spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=1000Mb

#maxFileSize 是单个文件大小 
#maxRequestSize是设置总上传的数据大小 

免责声明:文章转载自《ajax实现文件上传,多文件上传,追加参数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]ios几种常用的XML解析器智能指针之 auto_ptr下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c#属性(Property)

属性(Property)是类(class)、结构(structure)和接口(interface)的命名(named)成员。类或结构中的成员变量或方法称为 域(Field)。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。它们使用 访问器(accessors) 让私有域的值可被读写或操作。 该代码主要是帮助读者了解属性的用法,代...

【Flutter 混合开发】与原生通信-BasicMessageChannel

Flutter 混合开发系列 包含如下: 嵌入原生View-Android 嵌入原生View-iOS 与原生通信-MethodChannel 与原生通信-BasicMessageChannel 与原生通信-EventChannel 添加 Flutter 到 Android Activity 添加 Flutter 到 Android Fragment...

seata no available service 'null' found, please make sure registry config correct

最近学习seata的时候报了错误no available service 'null' found, please make sure registry config correct,服务名在配置文件中都有的,没办法只能跟源码了 环境springcloudHoxton.SR3+Springboot2.2.5.RELEASE+seata1.1+nacos1....

springboot elasticsearch 集成注意事项

  文章来源: http://www.cnblogs.com/guozp/p/8686904.html 一 elasticsearch基础    这里假设各位已经简单了解过elasticsearch,并不对es进入更多的,更深层次的解释,如有必要,会在写文章专门进行es讲解。   Elasticsearch是一个基于Apache Lucene(TM)的开源...

浅谈springboot 中如何通过restTemplate发送带有header和token的网络请求

最近在进行第三方接口对接,在对接过程中要用到大量的restTemplate的使用,个人觉得restTemplate装载带token的header发送网络请求是很重要的一个知识点,我在这里简单记录下: 第一步,注入TestRestTemplate: @Autowired private TestRestTemplate testRestTempl...

LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值

import java.util.Collections; import java.util.Comparator; import java.util.List; /* 524. 通过删除字母匹配到字典里最长单词 给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典...