@PostMapping(“/upload”)
public String singleFileUpload(@RequestParam(“file”) MultipartFile file,
RedirectAttributes redirectAttributes) {
if (file.isEmpty()) {
redirectAttributes.addFlashAttribute(“message”, “Please select a file to upload”);
return “redirect:uploadStatus”;
}
try {
// Get the file and save it somewhere
byte[] bytes = file.getBytes();
Path path = Paths.get(UPLOADED_FOLDER + file.getOriginalFilename());
Files.write(path, bytes);
redirectAttributes.addFlashAttribute(“message”,
“You successfully uploaded ‘” + file.getOriginalFilename() + “‘”);
} catch (IOException e) {
e.printStackTrace();
}
return “redirect:/uploadStatus”;
}
上面代码的意思就是,通过MultipartFile读取文件信息,如果文件为空跳转到结果页并给出提示;如果不为空读取文件流并写入到指定目录,最后将结果展示到页面 。
MultipartFile是Spring上传文件的封装类,包含了文件的二进制流和文件属性等信息,在配置文件中也可对相关属性进行配置,基本的配置信息如下:
- spring.http.multipart.enabled=true #默认支持文件上传.
- spring.http.multipart.file-size-threshold=0 #支持文件写入磁盘.
- spring.http.multipart.location= # 上传文件的临时目录
- spring.http.multipart.max-file-size=1Mb # 最大支持文件大小
- spring.http.multipart.max-request-size=10Mb # 最大支持请求大小
更多配置信息参考这里:Common application properties
5、异常处理@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MultipartException.class)
public String handleError1(MultipartException e, RedirectAttributes redirectAttributes) {
redirectAttributes.addFlashAttribute(“message”, e.getCause().getMessage());
return “redirect:/uploadStatus”;
}
}
设置一个@ControllerAdvice用来监控Multipart上传的文件大小是否受限,当出现此异常时在前端页面给出提示 。利用@ControllerAdvice可以做很多东西,比如全局的统一异常处理等,感兴趣的同学可以下来了解 。
6、总结【java实现文件上传的三种方式 java文件上传原理】这样一个使用 Spring Boot 上传文件的简单 Demo 就完成了,感兴趣的同学可以将示例代码下载下来试试吧 。
推荐阅读
- macbook显示隐藏文件步骤 mac怎么显示隐藏文件夹
- 教你crontab定时执行shell脚本 crontab安装配置文件
- mxf文件剪辑软件介绍 mxf格式用什么播放器可以打开
- 将图片转换为pdf文件 pdf文件转换器word免费软件
- word文档图标是白纸形式 word文件图标变白修复
- javarandom函数用法 java随机函数怎么写
- 实现两个字符串的比较 两个字符串比较是否相等
- win10共享找不到网络路径 共享文件夹打不开怎么办
- 电脑丢失dll文件一键修复方法 dll之家怎么用
- java零基础自学 javascript教程推荐