spring.http.multipart.maxFileSize=10MB
spring.http.multipart.maxRequestSize=10MB
方法2设置上传下载的文件大小
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize(DataSize.ofGigabytes(1));
factory.setMaxRequestSize(DataSize.ofGigabytes(1));
return factory.createMultipartConfig();
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="uploadFile" method="post" enctype="multipart/form-data" >
<label>文件上传<input type="file" name="file"></label><hr>
<button>上传</button>
</form>
<br>
<form action="multiUpload" method="post" enctype="multipart/form-data" >
<label>文件上传<input type="file" name="file"></label><hr>
<label>文件上传<input type="file" name="file"></label>
<button>上传</button>
</form>
<br>
<form action="download" method="post" >
<label>ljw.jpg<input type="hidden" name="fileName" value="ljw.jpg" ></label><hr>
<button>下载</button>
</form>
</body>
</html>
package com.ljw.boot.controller;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@RestController
public class UploadFileController {
@RequestMapping("/uploadFile")
public Map<String, Object> uploadFile(@RequestParam("file") MultipartFile file, HttpServletRequest request)
throws IllegalStateException, IOException {
Map<String, Object> mp = new HashMap<String, Object>();
// fileName.transferTo(new File("D:\\upload\\"+fileName.getOriginalFilename()));
// String filePath = "/images/";
String fileName = file.getOriginalFilename();
String filePath = request.getSession().getServletContext().getRealPath("imgupload/");
try {
FileUtil.uploadFile(file.getBytes(), filePath, fileName);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
// File dest = new File(filePath+fileName.getOriginalFilename());
// fileName.transferTo(dest);
mp.put("msg", "upload success");
return mp;
}
@RequestMapping("/download")
public String downLoad(@RequestParam("fileName") String fileName, HttpServletResponse response,
HttpServletRequest request) throws UnsupportedEncodingException {
String filePath = request.getSession().getServletContext().getRealPath("imgupload/");
System.out.println("fileName:" + fileName);
System.out.println("----------file download---" + filePath + fileName);
File file = new File(filePath + fileName);
if (file.exists()) { // 判断文件父目录是否存在
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition",
"attachment;fileName=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
byte[] buffer = new byte[1024];
FileInputStream fis = null; // 文件输入流
BufferedInputStream bis = null;
OutputStream os = null; // 输出流
try {
os = response.getOutputStream();
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer);
i = bis.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
bis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
@PostMapping("/multiUpload")
public String multiUpload(HttpServletRequest request) {
List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file");
String filePath = request.getSession().getServletContext().getRealPath("imguploads/");
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return "上传第" + (i++) + "个文件失败";
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
// file.transferTo(dest);
try {
FileUtil.uploadFile(file.getBytes(), filePath, fileName);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
System.out.println(e);
return "上传第" + (i++) + "个文件失败";
}
System.out.println("第" + (i + 1) + "个文件上传成功");
}
return "上传成功";
}
}
package com.ljw.boot.controller;
import java.io.File;
import java.io.FileOutputStream;
public class FileUtil {
public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
File targetFile = new File(filePath);
if(!targetFile.exists()){
targetFile.mkdirs();
}
System.out.println("filePath:"+filePath+fileName);
FileOutputStream out = new FileOutputStream(filePath+fileName);
out.write(file);
out.flush();
out.close();
}
}
package com.ljw.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}