sprinboot 基础文件上传
配置文件上传大小服务
设置内置Tomcat请求大小为20MB
server.tomcat.max-http-form-post-size=20MB
设置请求最大大小为20MB
spring.servlet.multipart.max-request-size=20MB
设置文件上传最大大小为20MB
spring.servlet.multipart.max-file-size=20MB
public static R saveImage(MultipartFile file, HttpServletRequest request){
if (!file.isEmpty()) {
//获取文件名称
String fileName = file.getOriginalFilename();
//获取文件后缀
assert fileName != null;
String suffixName=fileName.substring(fileName.lastIndexOf("."));
//重新生成文件名
fileName = UUID.randomUUID()+suffixName;
//判断文件是否存在 不存在创建
File fileUrl=new File(IMG_FILE);
if (!fileUrl.exists()) {
fileUrl.mkdirs();
}
//getAbsolutePath() 它可以返回一个 File 对象的绝对路径
//File.separator 的作用相当于 '\' 路径分割符
File file1=new File(new File(fileUrl.getAbsolutePath())+File.separator+fileName);
try {
file.transferTo(file1);
String url = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/upload/" +fileName;
return R.success(url,"图片上传成功!");
}catch (IOException e){
e.printStackTrace();
return R.error("图片上传失败");
}
}
return R.error("文件不存在");
}
配置文件映射虚拟路径
@Configuration
public class WebConfig implements WebMvcConfigurer {
/**
* 配置资源映射
* 意思是:如果访问的资源路径是以“/upload/”开头的,
* 就给我映射到本机的“images”这个文件夹内,去找你要的资源
* 注意:/images/ 后面的 “/”一定要带上
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/upload/**")
//虚拟路径
.addResourceLocations("file:" + "/Users/ailin/Downloads/jixing/images/");
}
}