@Configuration
public class MyConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/setmealpic/**")
.addResourceLocations("file:D:\\桌面\\javaDemo\\File\\upload");
}
}
@PostMapping("/uploadImages")
// public Result uploadImages(@RequestParam(imgFile) MultipartFile imgFile){
public Result uploadImages( MultipartFile imgFile){
try {
String oldName = imgFile.getOriginalFilename();
String saveDir="D:\\桌面\\javaDemo\\File\\upload";
File saveDirFile= new File(saveDir);
if (saveDirFile.exists()) {saveDirFile.mkdirs();}
String newName = UUID.randomUUID().toString() + "&" + oldName;
File saveFile = new File(saveDirFile, newName);
imgFile.transferTo(saveFile);
return new Result(true, MessageConstant.UPLOAD_SUCCESS,newName);
} catch (IOException e) {
e.printStackTrace();
}
return new Result(true, MessageConstant.PIC_UPLOAD_FAIL);
}
前端页面使用的是element UI代码如下
methods: {
//文件上传成功后的钩子,response为服务端返回的值,file为当前上传的文件封装成的js对象
handleAvatarSuccess(response, file) {
console.log(response);
console.log(file);
this.formData.img=response.data;
this.imageUrl="http://localhost:9003/setmealpic/"+response.data
},
//上传图片之前执行
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg';
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isJPG) {
this.$message.error('上传套餐图片只能是 JPG 格式!');
}
if (!isLt2M) {
this.$message.error('上传套餐图片大小不能超过 2MB!');
}
return isJPG && isLt2M;
}
}
可以进行上传,本地文件夹中也可以找到但是就是无法回显,浏览器访问的时候路径显示404
问题解决:路径后边少写了/
@Configuration
public class MyConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/setmealpic/**")
.addResourceLocations("file:D:\\桌面\\javaDemo\\File\\upload\\");
}
}
registry.addResourceHandler("/setmealpic/**") .addResourceLocations("file:D:\\桌面\\javaDemo\\File\\upload\\");
路径后边少写了一个 /
file:D:\\桌面\\javaDemo\\File\\upload\\
也可以写成file:D:\\桌面\\javaDemo\\File\\upload/