springMVC 用query.ajax文件上传

各位大侠,请教个问题。

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="取消" οnclick="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 >

< p style= "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.springframework.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)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值