org.springframework.web.multipart.MultipartException:当前请求不是多部分请求 [英] org.springframework.web.multipart.MultipartException: The current request is not a multipart request

查看:245
本文介绍了org.springframework.web.multipart.MultipartException:当前请求不是多部分请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试向服务器发送多部分请求,但出现以下异常 HTTP状态500-请求处理失败;嵌套的异常是org.springframework.web.multipart.MultipartException:当前请求不是多部分请求

I am trying to send a multipart request to the server but i am getting the following exception HTTP Status 500 - Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: The current request is not a multipart request

<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-body">
        <form id="imageuploadForm" action="<c:url value="/members/profileimageupload" />" method="POST" enctype="multipart/form-data">
            <div style="width:40%; float:left">
                <div class="fileupload fileupload-new" data-provides="fileupload">
                    <div class="fileupload-preview thumbnail" style="width: 200px; height: 150px;"></div>
                    <div>
                        <span class="btn btn-file">
                            <span class="fileupload-new">Select image</span>
                            <span class="fileupload-exists">Change</span>
                            <input id="imageFile" name="imageFile" type="file" />
                        </span>
                        <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Remove</a>
                    </div>
                </div>
            </div>
            <div style="width:40%; float:right" >
                <div class="progress">
                    <div class="bar" style="width: 60%;"></div>
                </div>
            </div>
        </form>
    </div>
    <div class="modal-footer">
       <button class="btn btn-success" id="submit">Upload</button>
       <button class="btn btn-primary" data-dismiss="modal" aria-hidden="true" >Close</button>
    </div>
 </div>

我的ajax呼叫正在发送请求.

my ajax call which is sending the request.

$(function() {
    //twitter bootstrap script
    $("button#submit").click(function(){
        var $form = $("#imageuploadForm");
        var type = $form.attr('method');
        var url =  $form.attr('action');
        $.ajax({
            type: $form.attr('method'),
            url: $form.attr('action'),
            data: $form.serialize(),

            success: function(msg){
                $("#form-content").modal('hide');
            },

            error: function(){
            }
        });
    });
});

应该处理请求的我的控制器

my controller which should handle the request

@RequestMapping(value="/profileimageupload",method= RequestMethod.POST)
    public void uploadProfileImage(@RequestParam(value="imageFile") final MultipartFile file) throws NumberFormatException, IOException{
    ////
}            

对于分段文件,我具有以下Web配置

I had the following web configuration for multipart file

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    /**
    * Supports FileUploads.
    */
    @Bean
    public MultipartResolver multipartResolver() {
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
        multipartResolver.setMaxUploadSize(500000000);
        return multipartResolver;
    }
}

推荐答案

检查是否在 Spring-Servlet.xml 中添加了 CommonsMultipartResolver .

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

然后, 在您的表单中将Enctype添加到 multipart/form-data

Then, add the enctype to multipart/form-data in your form

<form id="fileupload" method="post" enctype="multipart/form-data">

最后在Controller中, 请求> MultipartHttpServletRequest

Finally in Controller, Request > MultipartHttpServletRequest

 @RequestMapping(value = "/profileimageupload", method = RequestMethod.POST)
public ModelAndView uploadProfileImage(MultipartHttpServletRequest request) {}

依赖项

  1. commons-fileupload.jar
  2. commons-io.jar

这篇关于org.springframework.web.multipart.MultipartException:当前请求不是多部分请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆