上传文件的功能几乎每位Java EE程序员都能遇到,使用Spring boot开发上传功能很简单。
第一步,做一个表单。这里采用模板thymeleaf。
上传Excle基础数据。文件最大200M。
上传类型为type=“file”
第二步,上传方法。@PostMapping("/base/data/import")
public String upload(@RequestParam(“xfile”) MultipartFile xfile, RedirectAttributes redirectAttributes) {
String classpath = BaseDataController.class.getResource("/").getPath();
String save_path = classpath + “/upload”;
File file = new File(save_path);
if (!file.exists()) {
file.mkdirs();
}
String save_file = save_path + “/” + xfile.getOriginalFilename();
try {
xfile.transferTo(new File(save_file));
redirectAttributes.addFlashAttribute(“msg”, “已上传!”);
} catch (IllegalStateException | IOException e) {
log.error(“upload error:{}”, e);
redirectAttributes.addFlashAttribute(“msg”, “上传失败!”);
}
return “redirect:/base/data/import”;
}
请求参数类型为MultipartFile,用于获取上传文件。如:
@RequestParam(“xfile”) MultipartFile xfile
而方法transferTo()能将文件写入到磁盘。
void transferTo(File dest) throws IOException, IllegalStateException;
第三步,修改上传文件大小限制。修改配置文件application.properties,添加发下配置:
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=200MB
如果不修改这个配置,默认只能上传1M大小的文件。