码迷,mamicode.com
首页 > Web开发 > 详细

jquery-ajax实现文件上传异常处理web.multipart.MultipartException

时间:2017-07-25 22:51:44      阅读:1497      评论:0      收藏:0      [点我收藏+]

标签:分析   data   方案   eth   上传   查看   lte   exception   解决   

异常如下:

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

标签:分析   data   方案   eth   上传   查看   lte   exception   解决   

原文地址:http://www.cnblogs.com/sunshinekevin/p/7236478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!