[英]How to get uploaded file in Node.js Express app using angular-file-upload
我想使用angular-file-upload上傳文件。 但是當我嘗試訪問req.body.files
或req.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()將請求傳遞給堆棧中的下一層 。
對於多部分中間件,它將調用next()方法,以便您可以編寫自己的函數來響應請求。
當然你需要先安裝它: npm install connect-multiparty
它們是處理分段上傳的其他中間件:
你應該使用一個與connect兼容的,因為express是建立在connect之上的
使用name
屬性作為鍵在files
對象中訪問它:
req.files.myFile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.