MissingServletRequestPartException: Required request part ‘file‘ is not present]

报错:

2020-10-20 19:09:32.298  WARN 5696 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present]
2020-10-20 19:19:37.187  WARN 5696 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present] 

解决分析:
在userController文件里@RequestParam(“avatar”)中【avatar】写成了【file】
修改:

@PostMapping("change_avatar")
	public JsonResult<String> changeAvatar(
			@RequestParam("avatar") MultipartFile file,
			HttpSession session) {
		// 判断上传的文件是否为空
		if (file.isEmpty()) {
			// 是:抛出异常

附:

  1. 我遇到的问题就是 注解中的字段值 和 input 标签中 name字段值不一致造成的。
<div class="cen1">
	<input type="file" name="avatar" class="file">
</div>

2.高手忽略! 要注意:
在jQuery中:
【$(".btn-change-avatar")】中的【.】取值class属性

【$("#btn-change-avatar")】中的【#】取值id属性

$(".btn-change-avatar").click(function(){
			$.ajax({
				"url":"/users/change_avatar",
				"data":new FormData($(".form-change-avatar")[0]),
				"processData":false,
				"contentType":false,
				"type":"POST",
				"dataType":"json",
				"success":function(json) {
					console.warn("正在执行:"+json);
					if (json.state == 2000) {
						alert("修改成功!");
						console.log(json.data);
						// 显示新头像
						$(".img-avatar").attr("src",json.data);
						// 把新头像路径更新到cookie中
						$.cookie("avatar", json.data, {"expires": 7});
					}else{
						alert("修改失败!" + json.message + "!");
					}
				},
				"error":function(xhr, textStatus, errorThrown) {
					alert("您的登录信息已经过期,请重新登录!\n\n响应码:" + xhr.status);
				}
			});
			return false;
		});
		```


源码:
	Git clone https://gitee.com/gzllkm/course.git
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值