1、增加过滤配置
package com.XXX.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class PathConfig extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.
addResourceHandler("/static/**"). addResourceLocations("classpath:/static/","file:static/");
}
}
2、配置yml
spring:
resources:
static-locations: classpath:static/,file:${jar.fileUrl}
# file配置(jar和fileUrl自己随意定义)
jar:
fileUrl: D:/XXX/XXX/upload/static
3、具体实现
@PostMapping("/upload")
public String upload(MultipartFile image,String username,HttpSession session) throws Exception {
String destDir=session.getServletContext().getRealPath("static/");
InputStream is = image.getInputStream();
BufferedImage bufferedImg = ImageIO.read(is);
int width = bufferedImg.getWidth();
int height = bufferedImg.getHeight();
User user = userService.checkUsername(username);
if (user ==null){
if (width<=500 && height<=500){
saveOrUpdateUserImageFile(image,username,destDir);
return "头像ok";
}else{
return "请上传分辨率宽<500,高<500的图片";
}
}else {
return "用户名已被注册";
}
}
public String saveOrUpdateUserImageFile(MultipartFile image,String username,String destDir)
throws IOException {
File imageFolder= new File(destDir);
String imageName = username+".jpg";
File file = new File(imageFolder,imageName);
System.out.println(file);
if(!file.getParentFile().exists())
file.getParentFile().mkdirs();
image.transferTo(file);
BufferedImage img = ImageUtil.change2jpg(file);
ImageIO.write(img, "jpg", file);
return imageName;
}
参考文章
评论