簡體   English   中英

嘗試使用Angular $ http通過表單異步提交文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM