Springboot 上传文件 The current request is not a multipart request 错误
错误
前端上传文件,后端方法中 @RequestParam("file") MultipartFile file 方法接收报错。
原因
刷新页面的请求地址是:http://localhost:8080/uploadImage,后台中上传文件的映射地址(action="/uploadImage")也是 /uploadImage,刚打开上传页面 uploadImage.html 刷新时的请求并非是一个 multipart request 请求,没有 MultipartFile 等参数,故此报错。
待刷新的页面:
http://localhost:8080/uploadImage
上传的地址:
@RequestMapping(value = "/uploadImage" )
public String upload(@RequestParam("file") MultipartFile file) throws Exception {
if (file.isEmpty()){
// TODO
}
return "uploadImage.html";
}
解决方法
1. 需要添加一个获取上传页面的方法映射上传页。
2. 修改上传文件的映射地址,如
修改后
HTML:uploadImage.html
上传
重置
controller:
/**
* @Description: 正常访问 图像上传页面
* @Date: 2019/11/8 19:05
* @Params:
* @ReturnType:
**/
@RequestMapping(value = "/uploadImage")
public String uploadImagePage() {
return "/uploadImage";
}
/**
* @Description: 上传图像
* @Date: 2019/11/8 19:06
* @Params:
* @ReturnType:
**/
@RequestMapping(value = "/upload")
@ResponseBody
public ModelAndView upload(@RequestParam("fileName") MultipartFile file) throws Exception {
ModelAndView modelAndView = new ModelAndView();
String uploadRes = "";
if (Objects.isNull(file) || file.isEmpty() || Strings.isEmpty(file.getOriginalFilename())) {
modelAndView.setViewName("uploadImage.html");
return modelAndView;
}
String fileName = file.getOriginalFilename();
fileName = fileName.substring(fileName.lastIndexOf("\\") + 1);
int size = (int) file.getSize();
logger.info(String.format("文件[%s] 大小为[%s]", fileName, size));
String rootPath = "F://test";
try {
// 保存文件
File dest = new File(rootPath + "/" + fileName);
file.transferTo(dest);
uploadRes = "true";
} catch (Exception e) {
e.printStackTrace();
uploadRes = "false";
}
modelAndView.addObject("uploadResult", uploadRes);
modelAndView.setViewName("uploadImage.html");
return modelAndView;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!