spring mvc realizes single file || multiple file upload


Project download address
https://github.com/sevenyoungairye/File-Upload

1. Pom dependency (jar package)

    <!-- common upload file -->
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.4</version>
    </dependency>

    <!-- common upload io-->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.5</version>
    </dependency>

2. File upload parser configuration

spring-mvc.xml

 <!-- 文件上传解析器 -->
 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
     <!--指定总文件大小 单位: b-->
     <property name="maxUploadSize" value="10000000"/>
     <!--指定单个文件的大小-->
     <property name="maxUploadSizePerFile" value="2000000"/>
     <!--指定编码-->
     <property name="defaultEncoding" value="utf-8"/>
 </bean>

3. Upload implementation

  • Page display
<%--
  Created by IntelliJ IDEA.
  User: echo lovely
  Date: 2020/9/5
  Time: 19:37
  文件上传测试 demo
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>File Upload Demo..</title>
</head>
<body>

    <form method="post" enctype="multipart/form-data" action="fileUpload1">
        name: <input type="text" name="name" /> <br/>
        file: <input type="file" name="fileUpload" /> <br/>
        <input type="submit" value="upload">
    </form>

    <br/>

    多文件上传:

    <form method="post" enctype="multipart/form-data" action="fileUpload2">
        file1 <input type="file" name="uploadFiles"> <br/>
        file2 <input type="file" name="uploadFiles"> <br/>
        <input type="submit" value="upload">
    </form>

</body>
</html>

  • Controller receiving file implementation
package com.bitqian.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * spring mvc 测试文件上传
 * @author echo lovely
 * @date 2020/9/5 9:21
 */
@Controller
public class FileUploadDemo {
    
    

    @RequestMapping(value = "/fileUpload1")
    @ResponseBody
    public void upload1(String name, MultipartFile fileUpload) {
    
    

        System.out.println(name);
        System.out.println(fileUpload);

        String originalFilename = fileUpload.getOriginalFilename();
        try {
    
    
            // 将文件保存到文件夹
            //fileUpload.transferTo(new File("f://Temp//" + originalFilename));
            String ext = originalFilename.substring(originalFilename.lastIndexOf("."));
            fileUpload.transferTo(new File("f://Temp//" + UUID.randomUUID() + ext));
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }

    // 多文件上传..
    @RequestMapping(value = "/fileUpload2")
    @ResponseBody
    public void uploadFile2(MultipartFile[] uploadFiles) {
    
    

        String path = "f://temp//";
        File file = new File(path);
        // 文件夹不存在创建temp文件夹
        if (!file.exists())
            file.mkdirs();

        if (uploadFiles != null) {
    
    
            for (MultipartFile uploadFile : uploadFiles) {
    
    
                String originalFilename = uploadFile.getOriginalFilename();
                System.out.println("源文件名:" + originalFilename);

                // uuid + 文件后缀名
                String fileName = UUID.randomUUID() +
                        originalFilename.substring(originalFilename.lastIndexOf("."));

                try {
    
    
                    // 上传文件到指定目录
                    uploadFile.transferTo(new File(path + fileName));
                } catch (IOException e) {
    
    
                    e.printStackTrace();
                }

            }
        }
    }

}

Guess you like

Origin blog.csdn.net/qq_44783283/article/details/108427928