文件上传/回显
SpringBoot默认tomcat上传文件大小问题(默认大小不能超过1MB)
/**
* 文件上传
*
* @param file
* @throws IOException
*/
@PostMapping("upload")
@ApiOperation("文件上传")
public void upload(@RequestParam("file") Part file) throws IOException {
String data = "";
LocalDateTime now = LocalDateTime.now();
data += now.getYear();
data += now.getMonthValue();
data += now.getDayOfYear();
log.info("文件上传的时间:{}", data);
File folder = new File(PATH + data);
if (!folder.exists() && !folder.isDirectory()) {
folder.mkdir();
}
String fileName = Paths.get(file.getSubmittedFileName()).getFileName().toString();
InputStream inputStream = file.getInputStream();
OutputStream outputStream = new FileOutputStream(PATH + data + "\\" + fileName);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
inputStream.close();
}
/**
* 文件回显、下载
*
* @param data
* @param name
* @param httpServletResponse
* @throws IOException
*/
@GetMapping("{data}/{file:.+}")
public void getFile(@PathVariable("data") String data, @PathVariable("file") String name, HttpServletResponse httpServletResponse) throws IOException {
ServletOutputStream outputStream = httpServletResponse.getOutputStream();
byte[] bytes = Files.readAllBytes(Paths.get(PATH + data + "\\" + name));
outputStream.write(bytes);
}
这里注意,在
tomcat
中默认文件上传限制大小为1M
=1048576
字节,如果上传的文件超过了这个限制,就会报错。
解决办法:在
web.xml
中配置上传文件大小限制
<web-app>
<!-- 上传文件大小限制 -->
<multipart-config>
<max-file-size>102400000</max-file-size>
<max-request-size>102400000</max-request-size>
</multipart-config>
</web-app>
注意:上传文件大小限制为
102400000
字节,即100M
。
注意:上传文件大小限制为
102400000
字节,即`10
application.yml
spring:
servlet:
multipart:
max-file-size: 100MB #单个文件大小
max-request-size: 200MB # 总文件大小(允许存储文件的文件夹大小)
标签:文件大小,outputStream,SpringBoot,回显,文件,上传,file,data
From: https://www.cnblogs.com/tobycold/p/17863480.html