【SpringBoot】07.SpringBoot文件上传

SpringBoot文件上传

1.编写html文件在classpath下的static中

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
	<form action="fileUploadController" method="post" enctype="multipart/form-data">
		上传文件:<input type="file" name="filename"/> <br/>
		<input type="submit"/>
	</form>
</body>
</html>

2.编写处理文件上传的类和方法

/**
 * SpringBoot文件上传
 */
//这个类下的所有方法返回值自动做json格式的转换。类似@Controller + @ResponseBody
@RestController
public class FileUploadController {
	/*
	 * 处理文件上传
	 */
	@RequestMapping("/fileUploadController")
	public Map<String,Object> fileUpload(MultipartFile filename) throws Exception{
		System.out.println(filename.getOriginalFilename());//打印上传文件名称
		filename.transferTo(new File("e:/"+filename.getOriginalFilename()));
		Map<String,Object> map = new HashMap<String, Object>();
		map.put("msg", "ok");
		return map;
	}
}

@RestController注解就是这个类下的所有方法返回值自动做json格式的转换。
类似@Controller + @ResponseBody

3.上传大文件出错的问题

org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (36456567) exceeds the configured maximum (10485760)

说明文件大小超过默认大小。

我们需要修改默认大小:

  1. 在classpath的根目录下创建 application.properties

    #SpringBoot2.0以下的版本:
    #上传文件的单个大小
    spring.http.multipart.maxFileSize=200MB
    #上传文件的总大小
    spring.http.multipart.maxRequestSize=200MB
    
    #SpringBoot2.0后的版本:
    spring.servlet.multipart.maxFileSize=100MB
    spring.servlet.multipart.maxRequestSize=100MB
    

    注意:application.properties必须放在classpath的根目录!

原文地址:https://www.cnblogs.com/isdxh/p/13528156.html