2016-01-20 150 views
2

我有一個Spring MVC的REST控制器來處理.zip文件上傳,喜歡Spring MVC的AJAX文件上傳錯誤

@RequestMapping(value = "/browser/file", method = RequestMethod.POST) 
public String getUpload(@RequestParam("file") MultipartFile file, @RequestParam("path") String path) { 
    //do something 
} 

我用MultipartFile此配置:

@Bean 
public MultipartResolver multipartResolver() { 
    CommonsMultipartResolver filterMultipartResolver = new CommonsMultipartResolver(); 
    filterMultipartResolver.setMaxUploadSize(17000000); 
    return filterMultipartResolver; 
} 

我的HTML上傳形式是

<form enctype="multipart/form-data" action="/rest/visualization/browser/file" id="hdfsLoader"> 
    <span class="pull-right"> 
     <input name="file" class="filestyle" id="zipUpload" data-input="false" type="file" data-buttonText="Upload" data-classButton="btn btn-primary" data-classIcon="icon-plus"> 
    </span> 
</form> 

和我使用AJAX POST請求來發送數據:

var data = new FormData(); 
data.append("file", $('#zipUpload')[0].files[0]); 
var path = $('#hdfs_path').val(); //some external value 
$.ajax({ 
    type: 'POST', 
    url: form.attr("action") + "?path=" + path, 
    data: data, 
    processData: false, 
    contentType: false, 
    cache: false, 
    success: (function (data) { 
     alert('Success'); 
    }) 
}); 

我已經在3個不同的.zip文件上測試了這段代碼。 在15.8 MB -size文件一切工作正常。

9.72 MB我有org.apache.commons.fileupload.FileUploadException: Stream closed

701 KBDefaultHandlerExceptionResolver:186 - Handler execution resulted in exception: Required MultipartFile parameter 'file' is not present。 我該如何解決這個問題?

+0

如果我刪除了MultipartFile(Bean)的配置,我能夠加載只有很小的.zip文件 –

回答

0

我已經刪除了我的豆了MultipartFile並添加這些3線到我的application.properties,這解決了我的問題:

multipart.enabled=true 
multipart.max-file-size=-1 
multipart.max-request-size=-1