jquery-ajax实现文件上传异常处理web.multipart.MultipartException
Posted SunshineKevin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery-ajax实现文件上传异常处理web.multipart.MultipartException相关的知识,希望对你有一定的参考价值。
异常如下:
org.springframework.web.multipart.MultipartException: The current request is not a multipart request
原因分析:
可能原因1:
form表单中没有添加 enctype="multipart/form-data" 属性
可能原因2:
请求方式必须为post,如果不是则必定出错
可能原因3:
请求的contentType不是"multipart/form-data" 【可以在控制层使用request.getContentType()测试查看】
那么分析一下springmvc中如对request请求类型进行判断:
当spring对请求进行处理的时候首先判断请求是否是文件上传请求,如果controller曾匹配的参数类型为MultipartFile
并且请求不是文件上传请求,这时候就会抛出上面的那个一场,而spring判断请求类型的依据就是ContentType
所以解决方案就显而易见了,我这里使用的是jquery-ajax请求,代码如下:
1 $.ajax({ 2 type: form.method || ‘POST‘, 3 url:$form.attr("action"), 4 data:$form.serializeArray(), 5 contentType: "multipart/form-data", 6 dataType:"json", 7 cache: false, 8 success: alter("success"), 9 error: alert("error") 10 });
想想看为了处理这个问题也花了一天的时间,本人谨奉上如上心得,如有问题,希望留言探讨!
以上是关于jquery-ajax实现文件上传异常处理web.multipart.MultipartException的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot2之web开发(下)——数据响应模板引擎拦截器文件上传和异常处理(未完成)