2016-11-18 11 views
0

私はREST APIに基づいてWebアプリケーションを作成しています。私はフロントエンドでファイルを読み込み、バックエンドに送信して、これをmongodbデータベース(GridFSDBFile)に保存しようとしています。 FormDataでPOSTをフロントエンド(角)からSpringBootバックエンドに送信した後、空のオブジェクトを受け取ります。MultiPart FormDataはマッピング後に空です

フロントエンド機能:

私は着信要求をマッピングし、自分のデータベースにファイルを保存するバックエンド・コントローラーで
saveNewImage(userFile, fileName){ 
     var formdata = new FormData(); 
     formdata.append('name', fileName); 
     formdata.append('file', userFile); 
     return this.$http({ 
      url: this.getUrl('file/uploadNew'), 
      method: "POST", 
      data: formdata, 
      cache: false, 
      headers: { 
       "Content-Type": "multipart/*;boundary=gc0p4Jq0M2Yt08jU534c0p" 
      }, 
      processData: false 
     }); 

。私は@ModelAttributeのadnotationsでこれをマップしようとしています:

@RequestMapping(value = "/uploadNew", headers = "content-type=multipart/*", method = RequestMethod.POST) 
    @ResponseBody 
    public ResponseEntity<String> uploadFileHandler(@ModelAttribute("name") String name, @ModelAttribute("file") MultipartFile file) { 
     FileInputStream fis = null; 
     ObjectMapper ob = new ObjectMapper(); 
     AnnotationConfigApplicationContext ctx = null; 


//saving file to database 
      (...) 
       return ResponseEntity.status(HttpStatus.OK).body(ob.writeValueAsString("ok")); 
      } catch (JsonProcessingException e) { 
       e.printStackTrace(); 
      } 

      return null; 
     } 

を、次のように私は、代わりに私のファイルの名前とnullを空の文字列を得た:

2016-11-18 19:03:03.657 ERROR 14114 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 

java.lang.NullPointerException: null 

私は問題が産む場所を確認していません、フロントエンドのコードが正常に動作しているように見えます(ネットワークデバッグでは要求が空ではなく空白でないことが示されています)。それを修正するには?

ありがとうございます!誰かが同じ問題を抱えてしまう場合

答えて

0

、解決策は

headers: {'Content-Type': undefined } 
にコンテンツタイプを変更することでした
関連する問題