文件上传控制类
@PostMapping(value = "/uploadImage")
@ResponseBody
public Map<String, Object> uploadImg(@RequestParam(value = "editormd-image-file",
required = true) MultipartFile multipartFile, HttpServletRequest request) {
//文件存放的路径
//得到工程的路径:
System.out.println("得到工程的路径:" + System.getProperty("user.dir"));//user.dir指定了当前的路径
//得到工程目录:
System.out.println("得到工程目录:" + request.getSession().getServletContext().getRealPath("")); //参数可具体到包名
//得到IE地址栏地址 request.getRequestURL()
System.out.println("得到IE地址栏地址 :" + request.getRequestURL());
// 得到相对地址:request.getRequestURI()
System.out.println("得到相对地址:" + request.getRequestURI());
// String path=request.getServletContext().getRealPath("")+"uploaded";
String path = System.getProperty("user.dir") + "\\src\\main\\resources\\static\\upload\\";
String fileName = multipartFile.getOriginalFilename();
fileName = UUID.randomUUID() + fileName.substring(fileName.indexOf("."), fileName.length());
String destFileName = path + fileName;
System.out.println("path:" + path);
File destFile = new File(destFileName);
if (!destFile.exists()) {
destFile.getParentFile().mkdirs();
}
String url = "http://localhost:8080" + "/upload/" + fileName;
System.out.println("url:" + url);
Map<String, Object> result = new HashMap<>();
try {
multipartFile.transferTo(destFile);
result.put("success", 1);
result.put("message", "图片上传成功");
result.put("url", url);
return result;
} catch (IOException e) {
e.printStackTrace();
result.put("success", 0);
result.put("message", "图片上传失败");
return result;
}
}
静态资源映射:
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/*允许访问静态资源*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
/* registry.addResourceHandler("/upload/**").addResourceLocations("upload:"+"/blog/");*/
//获取文件的真实路径 work_project代表项目工程名 需要更改
String path = System.getProperty("user.dir") + "\\src\\main\\resources\\static\\upload\\";
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) {
registry.addResourceHandler("/upload/**").
addResourceLocations("file:" + path);
} else {//linux和mac系统 可以根据逻辑再做处理
registry.addResourceHandler("/upload/**").
addResourceLocations("file:" + path);
}
}
}