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         });

想想看为了处理这个问题也花了一天的时间,本人谨奉上如上心得,如有问题,希望留言探讨!

时间: 2024-10-22 17:38:15

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

基于jquery的Ajax实现 文件上传

---------------------------------------------------------------遇到困难的时候,勇敢一点,找同学朋友帮忙,找导师求助. Ajax Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据). 同步交互:客户端发出一个请

jquery组件WebUploader文件上传用法详解

这篇文章主要为大家详细介绍了jquery组件WebUploader文件上传用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件,下文来为各位演示一下关于jquery WebUploader文件上传组件的用法. 使用WebUploader还可以批量上传文件.支持缩略图等等众多参数选项可设置,以及多个事件方法可调用,你可以随心所欲的定制你要的上传组件. 接下来我以图片上

ajax+spring文件上传

1.js代码 $(function(){ $('#upfileID').change(function(){ $.ajaxFileUpload({ url: '/upload/image', type: 'post', secureuri: false, //一般设置为false fileElementId: 'upfileID', // 上传文件的id属性名 dataType: 'text', //返回值类型,一般设置为json.application/json success: functi

ajax提交表单、ajax实现文件上传

ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用jquery的$.ajax({..}), 支持提交普通表单,但不支持含有文件的复杂表单; ($.post 或 $.get底层用的都是$.ajax) 方式三:使用jquery插件ajaxFileUpload.js, 支持上传文件,但不支持提交表单 方式四:使用jquery.from.js,支持提交同时

7 款基于 JavaScript/AJAX 的文件上传插件

本文整理了7款基于JavaScript和AJAX的文件上传插件,这些插件基本上都能实现以下功能: 多文件上传 拖拽操作 实时上传进度 自定义上传限制 希望能为你的开发工作带来帮助. 1.  jQuery File Upload 具有多文件上传.拖拽.进度条和图像预览功能的文件上传插件,支持跨域.分块.暂停恢复和客户端图像缩放.可与任何服务端平台(如PHP.Python.Ruby on Rails.Java.Node.js.Go等)一起使用,支持标准的HTML表单文件上传. 2.  Pixelco

基于jsp的AJAX多文件上传的实现

最近的项目开发中,遇到了一个多文件上传的问题,即在不刷新页面的情况下,上传多个文件至服务器.现总结分享如下: 本文主要采用了基于jsp的ajax,jquery,servlet等技术. 1.upload.jsp 点击上传时,调用对应的fileupload函数,通过ajax将文件异步传送到servlet中处理.注意在文件上载时,所使用的编码类型应当是"multipart/form-data",它既可以发送文本数据,也支持二进制数据上载. <%@ page language="

AJAX与文件上传

一.ajax ajax(Asynchronous JavaScript And XML):异步JavaScript和XML,即使用JavaScript语句与服务器进行异步交互,传输的数据为XML(也可以是json数据).实际上就是在JavaScript语句里用ajax可以向服务器发送请求. 两大特点: 1,异步交互 2,页面局部刷新 语法: 基于jQuery:<script>$('.cc').click(function(){ #当我们点击'.cc'这个类的时候就会触发ajax请求 $.aja

[转]文件上传原理:Web上传文件的原理及实现

现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的CommonsFileUpload.还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了CommonsFileUpload).在asp.net中也有相应的上传文件的控件. 虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很大的帮助,下面就来讲一下通过浏览器上传文件的基本原理.在了解了原理之后,就可以非常容易地自制满足自身需要的上传组件

基于jquery的多文件上传

1.文件上传前台设计 说到前台设计,还真的有些不知道怎么讲好,还是老样子,直接上图来的直接,在此也说明下:本人不擅长做PS,所以很多素材(图片)都是网上寻找的,这个上传程序可以上传各种文件,至于哪些?我没数过,我不介意你数一数,我就用简单的图片上传来演示吧,附带预览功能. 还没有上传的时候的界面(有点丑,莫嫌弃) 要开始上传时: 这个时候鼠标上移的时候,可以对文件进行操作(删除掉误选的照片和查看文件名) 上传时的图片(由于本人是用js模拟上传,所以上面的总的进度条不会动,完整的程序完全没有问题)