簡體   English   中英

如何使用angular-file-upload在Node.js Express應用程序中上傳文件

[英]How to get uploaded file in Node.js Express app using angular-file-upload

我想使用angular-file-upload上傳文件。 但是當我嘗試訪問req.body.filesreq.files我得到了undefined

任何人都可以告訴我如何獲取通過angular.js express app中的angular-file-upload上傳的文件?

請求有效負載如下:

Content-Disposition: form-data; name="myFile"; filename="BroadcomLogo.gif"
Content-Type: image/gif

JS代碼:

$scope.upload[index] = $upload.upload({
   url : '/upload',
   method: 'POST',
   file: $scope.selectedFiles[index],
   fileFormDataName: 'myFile'
});

節點代碼

upload: function(req, res) {
    console.log(req.files);
    res.send("Hello");
},

您需要使用一個中間件來解析Node.js中的請求中的文件:

var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/upload', multipartMiddleware,upload);

簡而言之, 中間件是處理請求的函數 connect.createServer創建的服務器可以有一堆與之關聯的中間件。 當請求進入時,它會被傳遞給第一個中間件函數,以及一個包裝的ServerResponse對象和下一個回調。 每個中間件都可以決定通過調用響應對象上的方法來響應,和/或通過調用next()將請求傳遞給堆棧中的下一層

http://stephensugden.com/middleware_guide/

對於多部分中間件,它將調用next()方法,以便您可以編寫自己的函數來響應請求。

當然你需要先安裝它: npm install connect-multiparty

它們是處理分段上傳的其他中間件:

你應該使用一個與connect兼容的,因為express是建立在connect之上的

使用name屬性作為鍵在files對象中訪問它:

req.files.myFile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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