[英]Trying to submit file via form asynchronously using Angular $http
我正在嘗試通過Angular異步提交文件。 這是HTML:
<form ng-submit="videoSubmit()">
<input id="upl-0" type="file" name="upl" accept="video/ogg, video/mp4, video/webm">
<input type="submit" value='Submit' />
</form>
我的角度代碼:
$scope.videoSubmit = function() {
var file = document.getElementById('upl-0').files[0];
var formData = new FormData();
console.log(file);
formData.append("upl", file, file.name);
console.log(formData);
console.log(formData.getAll("upl"));
$http({
method: 'POST',
url: "api/asset/upload-test",
data: formData,
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then(function(result) {
console.log(result);
});
};
這肯定會將文件附加到formData對象,因為它在控制台中顯示了正確的文件數據。
現在,我想在服務器上對此進行操作,但是與此同時,我只想真正使它工作,所以這就是服務器上的全部內容:
router.post('/api/asset/upload-test', function(req, res) {
console.log(req.data);
console.log(req.body);
});
但是,服務器不知何故不接收文件,對req.data顯示undefined
對req.body顯示{}
。 為什么這樣做以及如何在同一實現中實際使用它,而不必使用諸如base64之類的東西對文件進行編碼或解碼。 謝謝。
應該在req.files中,並且為此,您需要使用express.bodyParser()。 如果您當然使用快遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.