2017-03-23 2 views
0

マイコントローラー・コードではありません。ハンドラの実行時に例外が発生した:必要なMultipartFileパラメータ「ファイル」が存在

@RequestMapping(value = "/rest/auth/admin/test/responseTest", method = RequestMethod.POST) 
@ResponseBody 
public ResponseEntity<ResponseVO> responseTest(@RequestParam("file") MultipartFile file, 
     @RequestParam(value = "testId", required = true) long testId) { 

私はすでに私のアプリケーションのcontext.xmlにmultipartResolver Beanを追加した

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

私のjavascriptコード:

var fd = new FormData(); 
fd.append('file', $('input[type=file]')[0].files[0]); 
fd.append("label", "WEBUPLOAD"); 
var headers = {}; 
headers[Constants.XCSRFTOKENCookieName] = util.getCookie(Constants.XCSRFTOKENCookieName); 
var url = "rest/auth/admin/test/responseTest?responseTest=123"; 
var dataType = "json"; 
var contentType = "application/json"; 
$.ajax({ 
    url: url, 
    type: "POST", 
    data: fd, 
    dataType: dataType, 
    async: isAsync, 
    headers: headers, 
    enctype: contentType, 
    processData: false, // tell jQuery not to process the data 
    contentType: false, // tell jQuery not to set contentType 
    success: function(result, status, jqXHR) { 
     resultObj = result; 
     if (successCallBack != null) { 
      successCallBack(resultObj); 
     } 
     //util.hideLoader(); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.log("Error : " + errorThrown); 
     resultObj = jqXHR.responseJSON; 
     if (errorCallBack != null) { 
      errorCallBack(resultObj); 
     } 
     //util.hideLoader(); 
    } 
}); 

私は上記のAjaxを呼び出すときにサーバー側で次のエラーが発生しました。

[org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver] > logException() : 186 - Handler execution resulted in exception: Required MultipartFile parameter 'file' is not present 

この問題を解決するのを手伝ってください。

答えて

0

これはcontentTypeヘッダーがapplication/jsonの代わりにmultipart/form-dataでなければならないと思いますか?

関連する問題