2013-02-21 63 views
31

मैं सर्वर पर एक मल्टीपार्ट अनुरोध भेजने की कोशिश कर रहा हूं लेकिन मुझे निम्नलिखित अपवाद HTTP स्थिति 500 ​​मिल रहा है - अनुरोध प्रसंस्करण विफल रही; नेस्टेड अपवाद org.springframework.web.multipart.MultipartException है: वर्तमान अनुरोध एक बहुखण्डीय अनुरोधorg.springframework.web.multipart.MultipartException: वर्तमान अनुरोध एक मल्टीपार्ट अनुरोध नहीं है

<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 कॉल जो अनुरोध भेजा जा रहा है नहीं है।

$(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(){ 
      } 
     }); 
    }); 
}); 

मेरी नियंत्रक जो अनुरोध

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

मैं बहुखण्डीय फ़ाइल

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

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

उत्तर

-1

ऐसा लगता है कि आपका टैग रूप में अच्छी तरह से स्वरूपित नहीं है और सब कुछ के लिए निम्न वेब विन्यास था संभाल चाहिए कि

'action="<c:url value="/members/profileimageupload" />"' 
के बाद है 10

को अनदेखा किया जा रहा है। अगर यह काम करता है इस तरह लिख सकते हैं और देखने के लिए प्रयास करें:

action="<c:url value='/members/profileimageupload' />" 
+0

नहीं ... :( –

11

"हेडर" के साथ फिर से प्रयास करें:

@RequestMapping(value = "/profileimageupload", headers = "content-type=multipart/*", method = RequestMethod.POST) 

और ajax कॉल का पालन: How can I upload files asynchronously?

मुझे आशा है कि यह उपयोगी आप!

+1

मैंने पाया कि "पोस्ट" भाग महत्वपूर्ण है मदद नहीं था, यह जीईटी अनुरोधों के साथ काम नहीं करेगा। –

25

चेक कि क्या आप वसंत-Servlet.xml में CommonsMultipartResolver जोड़ लिया है।

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

फिर, enctype बहुखण्डीय/फार्म-डेटा करने के लिए अपने रूप में

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

अंत में नियंत्रक में जोड़ने के लिए, अनुरोध>MultipartHttpServletRequest

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

निर्भरता

  1. कॉमन्स-fileupload.jar
  2. कॉमन्स-io.jar