public CommonResult userUpdate2(@RequestBody User user , @RequestParam MultipartFile avatarFile) { String uploadFileName = null; if(avatarFile != null){ uploadFileName = avatarFile.getOriginalFilename(); } // 条件成立:表示添加用户同时上传了头像的图片,获取图片信息并将其存储到后端指定的路径 if (StrUtil.isNotBlank(uploadFileName)) { // 对上传文件进行重命名,系统当前毫秒数作为文件前缀,后缀不变 // 获取前端上传文件的后缀 int index = StrUtil.indexOf(uploadFileName, '.'); String suffix = uploadFileName.substring(index); // 系统当前毫秒数作为上传文件的前缀 long prefix = System.currentTimeMillis(); uploadFileName = prefix + suffix; // 创建父路径 // File parentPath = new File(fileUploadPath+"/images/avatar/"); File parentPath = new File(fileUploadPath); // 条件成立:表示路径不存在,将其创建 if (!parentPath.exists()) { parentPath.mkdirs(); } File fullPath = new File(parentPath, uploadFileName); try { avatarFile.transferTo(fullPath); } catch (IOException e) { e.printStackTrace(); return new CommonResult(401,"上传头像出现故障,添加用户头像失败",false); } user.setHeadImgSrc("/images/avatar/" + uploadFileName); } return iUserService.userUpdate(user) ? CommonResult.success(true):CommonResult.fail(false); }
时间: 2024-02-10 09:27:26 浏览: 103
Spring MVC请求参数接收的全面总结教程
根据您提供的代码片段,出现"org.springframework.web.multipart.MultipartException: Current request is not a multipart request"异常的原因是当前请求不是一个多部分请求。在您的代码中,您使用了`@RequestParam`注解来接收`MultipartFile`类型的文件参数`avatarFile`,而该注解只能用于处理单个文件上传,而不是多部分请求。
要解决这个问题,您可以将方法参数中的`@RequestParam`注解改为`@RequestPart`注解,如下所示:
```java
public CommonResult userUpdate2(@RequestBody User user,
@RequestPart MultipartFile avatarFile) {
// 代码逻辑...
}
```
通过使用`@RequestPart`注解,您可以正确地处理多部分请求,从而避免出现该异常。
阅读全文