2017-05-01 12 views
0

「現在のリクエストがマルチパートリクエストではありません」しかし、すべての可能なオプションを試した後、まだ私はこのエラーを取得する:は、私はこの質問を何度も頼まれている知っているangularjsと春ブーツ

the current request is not a multipart

ここに私のコードは角にあります。

app.controller("controller", function ($scope, $http, $window, $log) { 

    $scope.upload = function() { 
     var file = $scope.myFile; 
     var fd = new FormData(); 
     fd.append('file', file); 
     $http.post('upload', fd, { 
      transformRequest: angular.identity, 

     }) 
      .success(function(){ 
      }) 
      .error(function(){ 
      }); 
    }; 

コントローラーコード:

@RequestMapping(value = "/upload", method = RequestMethod.POST) 
    public Callable<FileUpload> uploadFile(@RequestParam("file") MultipartFile file) throws Exception { 
     parser = fileHandlerService.getParser(file); 
     Callable<FileUpload> asyncResult = new Callable<FileUpload>() { 
      @Override 
      public FileUpload call() throws Exception { 
       FileUpload fileUpload = fileHandlerService.getUploadStatus(); 
       return fileUpload; 
      } 
     }; 

     return asyncResult; 
    } 

HTMLコード:

<div class="vertical-center"> 
     <input type="file" file-model="myFile"> 
     <button ng-click="upload()" class="btn btn-primary btn-lg">Upload 
     </button> 
</div> 

私が入れてみました:headers: {'Content-Type': undefined }は、しかしヘッダを付加して、私はもう、エラー500を得ることはありませんが、私は任意のヘッダーなしPostmanを通じてファイルを送信エラー400

を取得し、それはうまく動作します。だから私はそれが角を通って働かない理由を理解していない。

ありがとうございます。

答えて

0

{'Content-Type':undefined}を追加するだけでなく、divをフォームに変更してenctype = "multipart/form-data"をフォームに追加することができます。つまり、あなたのコードは次のようになります。

<form class="vertical-center" enctype="multipart/form-data"> 
    <input type="file" file-model="myFile"> 
    <button ng-click="upload()" class="btn btn-primary btn-lg">Upload 
    </button> 
</form> 
関連する問題