2017-02-23 136 views
0

嗨我正在與angularjs和春天mvc,我想上傳一個文件及其在服務器上的名稱。 我angularjs代碼看起來像這樣:angularjs上傳和彈簧mvc

Upload.upload({ 
    url: DocumentsService.REST_URL+DocumentsService.urls['document.upload'], 
    headers: { 'Content-Type': undefined }, 
    transformRequest: angular.identity, 
    data: { uploadingFile: document.content, fileName: 'testName.txt'}})); 

在Java方面我的代碼是:

String uploadDocuments(@RequestParam("uploadingFile") @Valid MultipartFile uploadingFile, @RequestParam("fileName") @Valid string fileName{...} 

一切似乎工作,但收到的文件名參數爲 「」 testName.txt」, 「testName.txt」 「而不是」testName.txt「,我不明白爲什麼它是重複的。 另一方面,uploadingFile參數可以。

任何幫助將不勝感激,謝謝

編輯 我只是想用$ http和FORMDATA而不是上傳,我得到了相同的結果,該文件是確定,但收到時額外的數據被複制由Java REST服務

+0

您正在使用[NG-文件上傳(https://github.com/danialfarid/ng-file-upload)不是嗎? – lealceldeiro

回答

0

假設

...你不需要在請求中fileName參數。這將是這樣的:

//.. 
data: { uploadingFile: document.content}})); 
//... 
+0

是的你是對的,我使用ng-file-upload。我知道文件名不是必需的,但我選擇它作爲我的例子。讓我們通過另一個字符串參數來替換文件名,這個字符串參數是我想要發送給我的請求的,稱它爲'comment'我收到「」我的評論「,」我的評論「」。傳遞給我的Java rest服務的任何參數是重複的,如果它是一個字符串,我得到一個重複的字符串,如果它是從Json的對象我得到一個列表與兩個項目。 – alxd

+0

你也嘗試刪除'標題:{'Content-Type':undefined}, transformRequest:angular.identity,'?上傳服務照顧已經 – lealceldeiro

+0

是的,我一開始沒有添加這些行,但結果是一樣的。 – alxd