springMVC 用query.ajax文件上传
2012-12-25 16:03
323 查看
各位大侠,请教个问题。
springMVC 文件上传,出错。
页面:
<form id="contentForm" method="post" enctype="multipart/form-data">
<input type="hidden" name="type" value="$!type" />
<table class="tablesorter" cellspacing="0">
<tbody>
<tr>
<td>标题</td>
<td><input type="text" id="title" name="title" class="comment_text"/></td>
</tr>
<tr>
<td>作者</td>
<td><input type="text" id="author" name="author" class="comment_text" /></td>
</tr>
<tr>
<td>所属类目</td>
<td> <!-- style="width:155px; height:20px;" -->
<select name="catId" class="comment_text">
#if($categoryList)
#foreach($category in $categoryList)
<option value="$!category.id">$!category.name</option>
#end
#end
</select>
</td>
</tr>
<tr>
<td>封面图片</td>
<td><input type="file" id="uploadFile" name="uploadFile" class="comment_text"></td>
</tr>
#if($!type == $!cookBook)
<tr>
<td>视频地址</td>
<td><input type="text" id="resourceUrl" name="resourceUrl" class="comment_text"></td>
</tr>
#end
<tr>
<td>正文</td>
<td>
<textarea name="content" id="editor_id" style="width:1300px;height:480px;"></textarea>
</td>
</tr>
<tr>
<td><input type="button" id="save" value="保存"/></td>
<td>
## <input type="button" id="saveAndPush" value="保存并发布"/>
<input type="button" value="取消" onclick="location.href='$urlBroker.getUrl('KariquBossStaticDomain').toString()/sns/content/list?pageNo=1&type=$!type'" /></td>
</tr>
</tbody>
</table>
</form>
js:
后台部分代码:
结果我提交 进不去后台方法,报错。。。。。
org.springframework.web.multipart.MultipartException: The current request is not a multipart request.
<h2>发生系统错误,请稍后再试</h2>
<pstyle="float:right;color:white;">
org.springframework.web.multipart.MultipartException: The current request is not a multipart request.
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.assertIsMultipartRequest(RequestParamMethodArgumentResolver.java:183)
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.resolveName(RequestParamMethodArgumentResolver.java:149)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:82)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:74)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:155)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframewo
9d45
rk.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.kariqu.sns.web.boss.common.UserSessionFilter.doFilter(UserSessionFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
springMVC 文件上传,出错。
页面:
<form id="contentForm" method="post" enctype="multipart/form-data">
<input type="hidden" name="type" value="$!type" />
<table class="tablesorter" cellspacing="0">
<tbody>
<tr>
<td>标题</td>
<td><input type="text" id="title" name="title" class="comment_text"/></td>
</tr>
<tr>
<td>作者</td>
<td><input type="text" id="author" name="author" class="comment_text" /></td>
</tr>
<tr>
<td>所属类目</td>
<td> <!-- style="width:155px; height:20px;" -->
<select name="catId" class="comment_text">
#if($categoryList)
#foreach($category in $categoryList)
<option value="$!category.id">$!category.name</option>
#end
#end
</select>
</td>
</tr>
<tr>
<td>封面图片</td>
<td><input type="file" id="uploadFile" name="uploadFile" class="comment_text"></td>
</tr>
#if($!type == $!cookBook)
<tr>
<td>视频地址</td>
<td><input type="text" id="resourceUrl" name="resourceUrl" class="comment_text"></td>
</tr>
#end
<tr>
<td>正文</td>
<td>
<textarea name="content" id="editor_id" style="width:1300px;height:480px;"></textarea>
</td>
</tr>
<tr>
<td><input type="button" id="save" value="保存"/></td>
<td>
## <input type="button" id="saveAndPush" value="保存并发布"/>
<input type="button" value="取消" onclick="location.href='$urlBroker.getUrl('KariquBossStaticDomain').toString()/sns/content/list?pageNo=1&type=$!type'" /></td>
</tr>
</tbody>
</table>
</form>
js:
// 保存 $("#save").click(function(E){ E.preventDefault(); $("#contentForm").attr("action", "$urlBroker.getUrl('KariquBossStaticDomain').toString()/sns/content/add"); //$("#contentForm").attr("enctype", "multipart/form-data"); var url = $("#contentForm").attr("action"); jQuery.ajax({ type:'POST', async:true, url: url, data: $("#contentForm").serialize(), dataType:"json", success:function(response){ if(response.success){ // location.href = response.url; }else{ } } }) });
后台部分代码:
@RequestMapping(value = "/sns/content/add", method = RequestMethod.POST) public String createContent(Article article, String resourceUrl, MultipartFile uploadFile, HttpServletResponse response) throws IOException { try { String fileName = uploadFile.getOriginalFilename(); String pictureUrl = null; // 上传了图片 if (PictureValidateUtil.isPicture(fileName)) { // 返回上传的图片地址 pictureUrl = this.uploadImage(uploadFile, article.getCatId()); }
结果我提交 进不去后台方法,报错。。。。。
org.springframework.web.multipart.MultipartException: The current request is not a multipart request.
<h2>发生系统错误,请稍后再试</h2>
<pstyle="float:right;color:white;">
org.springframework.web.multipart.MultipartException: The current request is not a multipart request.
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.assertIsMultipartRequest(RequestParamMethodArgumentResolver.java:183)
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.resolveName(RequestParamMethodArgumentResolver.java:149)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:82)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:74)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:155)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframewo
9d45
rk.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.kariqu.sns.web.boss.common.UserSessionFilter.doFilter(UserSessionFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
相关文章推荐
- jquery-ajax+springMVC实现文件上传
- SpringMVC结合ajaxfileupload.js实现文件无刷新上传
- 使用ajaxFileUpload与SpringMVC实现异步上传下载文件并返回json数据
- springMVC的文件上传和基于ajax的文件上传(学习记录)
- SpringMVC结合ajaxfileupload.js实现异步上传文件
- SpringMVC结合ajaxfileupload.js实现文件无刷新上传
- $('xx')[0].files[0]是什么意思,Ajax上传文件至springMVC的controller
- springmvc文件上传使用ajaxfileupload插件
- SpringMVC结合ajaxfileupload.js实现文件无刷新上传
- ajax上传带文件的form表单,springmvc接收
- springmvc Ajax表单上传文件案例
- springmvc环境下使用ajaxfileupload.js进行文件上传
- SpringMVC ajax技术无刷新文件上传下载删除示例
- SpringMVC Ajax上传文件实例
- SpringMVC 4(文件上传、ajax及json处理)
- SpringMVC结合ajaxfileupload.js实现文件无刷新上传
- SpringMVC ajax技术无刷新文件上传下载删除示例
- 用Ajax配合Restull实现SpringMVC的文件上传
- SpringMVC实现ajax文件上传
- Ajax文件上传和后台SpringMVC获取文件