前端post请求类型是file
所以只需要在controller层拦截post请求后,
@RequestParam(“file”)MultipartFile file 用MultipartFile拦截请求参数即可取出
返回值通常是图片路径(String类型)
service拿到后首先对文件类型进行安全校验,常见校验方法为,后缀名校验。
重命名,通常使用UUID加原后缀名。
UUID.randomUUID().toString().replaceAll(“-“,”")+getOriginalFilename.split(“.”)[1]
文件存储详见分布式文件系统FastDFS
https://blog.csdn.net/vivibro/article/details/95504400
跨域问题详见cors跨域问题处理
https://blog.csdn.net/vivibro/article/details/95482354
返回可访问路径给controller
坑:
报错:
org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field fileName exceeds its maximum permitted size of 1048576 bytes.
springmvc默认将上传文件大小限制为2MB。
解决办法:
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//单个文件最大
factory.setMaxFileSize(“10240KB”); //KB,MB
/// 设置总上传数据总大小
factory.setMaxRequestSize(“102400KB”);
return factory.createMultipartConfig();
}