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();
}
}
}
}
}