您的位置:首页 > 编程语言 > Java开发

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:

// 保存
$("#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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: