文件下载
public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
try {
request.setCharacterEncoding("UTF-8");
String filename = request.getParameter("name");
String mimeType = request.getServletContext().getMimeType(filename);
response.setContentType(mimeType);
response.setHeader("Content-Disposition", "attachment; filename="+filename);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\testzip\\"+filename));
byte[] stream = new byte[1024];
int len;
ServletOutputStream outputStream = response.getOutputStream();
while (true){
len = bis.read(stream);
if (len != -1){
outputStream.write(stream,0,len);
}else {
break;
}
}
outputStream.close();
bis.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
文件上传(单、多文件都适用)
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile[] file) throws IOException {
for (MultipartFile multipartFile : file) {
//如果什么都没上传
if (multipartFile.isEmpty()){
return "file is null";
}
//获取上传的文件名
String fileName = multipartFile.getOriginalFilename();
//把客户上传的文件放入到指定的文件夹下
String pathFile="C:\\testzip\\";
//返回该文件的全路径
String path = pathFile+fileName;
//用全路径生成一个File对象
File dest = new File(path);
//将客户端上传的文件写入到dest中
multipartFile.transferTo(dest);
}
return "success";
}
<form action="/upload" method="POST" enctype="multipart/form-data">
文件上传:<input type="file" name="file" multiple="multiple"><br>
<input type="submit" value="提交">
</form>
对于上传文件的时候要注意一点:就是Springboot对上传文件的大小是有要求的,我们需要手动配置上传文件的大小
在application.yml中配置(针对springboot 2.X):
spring:
servlet:
multipart:
max-file-size: 10MB //是设置单个文件的大小
max-request-size: 100MB//是设置单次请求的文件的总大小