繁体   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