0
我想使用angularjs作爲前端,Spring Rest作爲後端做文件上傳。這裏是我的前端代碼:Spring @RequestParam不能使用HTML FormData
var data = evt.target.result;
var formData = new FormData();
formData.set("fileId", 1);
formData.set("file", data);
$http({method: "POST", url: "/file", data: formData, headers : {"Content-Type": undefined}, transformRequest: angular.identity}).success(function() {
console.log("hi");
}).error(function(reason) {
console.log(reason);
});
這裏是我的後端代碼:
@RequestMapping(value = "/file", method = POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Void> uploadFile(@RequestPart("file") MultipartFile file) {
我覺得我的代碼應該是工作,但事實上,我不斷收到錯誤400說「所需要求部分'文件'不存在」。
有什麼想法?謝謝。
下面是來自螢火蟲的數據:
-----------------------------5045635351933894389797998578
Content-Disposition: form-data; name="fileId"
1
-----------------------------5045635351933894389797998578
Content-Disposition: form-data; name="file"
%PDF-1.7
%äãÃÃ’
4 0 obj
<</Type/XObject
/Subtype/Form
/FormType 1
/Matrix[1 0 0 1 0 0]
/BBox[0 0 612 792]
/Resources<</ExtGState<</GS0 5 0 R>>/ProcSet[/PDF/ImageC]/Properties<</MC0 6 0 R>>/XObject<</Im0 7 0
R>>>>/Filter/FlateDecode/Length 343>>
stream
H‰Â」Â「ÃNÃ0†ïy
¿@SDZÂ「øʆ&;ð
-----------------------------5045635351933894389797998578--
我們可以清楚地看到帕拉姆的名字,一個是FILEID,另一種是文件。
這篇文章在這裏[multipartformdata-file-upload-with-angularjs](https://uncorkedstudios.com/blog/multipartformdata-file-upload-with-angularjs)介紹了一個稍微不同的前端代碼版本應該有使用angularjs ... – Filip
而不是formData.set嘗試formData.append –
我使用formData.append之前我嘗試formData.set @RameshKotha –