Springboot文件上传demo
初学者上路,如有错误,请多多指正!
1.需要导入的jar包
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
2.页面使用的是thymeleaf模板
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<h2>单个文件上传</h2>
<form th:action="@{/wj/up}" method="post" enctype="multipart/form-data">
<input type="file" name="filename" /><br>
<input type="submit" value="上传" />
</form>
<hr>
<h2>多个文件上传</h2>
<form th:action="@{/wj/upmore}" method="post" enctype="multipart/form-data">
<input type="file" name="fileName" /><br>
<input type="file" name="fileName" /><br>
<input type="file" name="fileName" /><br>
<input type="file" name="fileName" /><br>
<input type="submit" value="提交" />
</form>
</body>
</html>
3.文件上传
package com.eduais.controller;
import org.apache.commons.io.FilenameUtils;
import org.springframework.stereotype.Controller;
import org.springframework.util.ClassUtils;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@Controller
@RequestMapping(value = "/wj")
public class UpLoadFileController {
/**
* 单个文件上传
* @param filename
* @return
*/
@RequestMapping(value = "/up")
public String upFileUp(MultipartFile filename){
//获取上传文件的名称
String fileOriginalFileName = filename.getOriginalFilename();
System.out.println("上传文件的名称是:"+fileOriginalFileName);
//获取上传文件的后缀名
String fileExtension = FilenameUtils.getExtension(fileOriginalFileName);
System.out.println("文件的后缀名:"+fileExtension);
//对文件进行重新命名
String newFileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+"."+fileExtension;
System.out.println("文件新名称:"+newFileName);
//获取上传文件后缀
String suffix = newFileName.substring(newFileName.indexOf("."));
System.out.println("文件后缀:"+suffix);
//获取文件大小
long fileSize = filename.getSize();
System.out.println("文件大小:"+fileSize);
//获取文件类型
String fileType = filename.getContentType();
System.out.println("文件类型"+fileType);
//设置文件上传路径(在这里模拟服务器路径)
File file = new File("E:\\fileupload",newFileName);
//进行文件上传
try {
filename.transferTo(file);
System.out.println("文件上传成功");
} catch (IOException e) {
// e.printStackTrace();
System.out.println("文件上传失败!");
}
return "fileupload";
}
/**
* 多个文件的上传
* @param request
* @return
* @throws IOException
*/
@RequestMapping(value = "/upmore")
public String upMoreFiles(HttpServletRequest request) throws IOException {
List<MultipartFile> multipartFileList = ((MultipartHttpServletRequest)request).getFiles("fileName");
for(MultipartFile multipartFile : multipartFileList){
//文件类型
String fileType = multipartFile.getContentType();
System.out.println("文件类型:"+fileType);
//文件名
String fileOriginalName = multipartFile.getOriginalFilename();
System.out.println("文件原名:"+fileOriginalName);
//文件大小
long fileSizeize = multipartFile.getSize();
System.out.println("文件大小:"+fileSizeize);
//文件后缀名
String fileExtension = FilenameUtils.getExtension(fileOriginalName);
System.out.println("文件后缀:"+fileExtension);
//对文件进行重新命名
String newFileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+ UUID.randomUUID().toString().replaceAll("-","") +"."+fileExtension;
System.out.println("新文件名:"+newFileName);
File file = new File("E:\\fileupload",newFileName);
//上传文件
multipartFile.transferTo(file);
System.out.println("========================");
}
return "fileupload";
}
}