如何使用angular-file-upload在Node.js Express应用程序中获取上传的文件
我想要使用angular-file-upload来上传文件。 但是,当我尝试访问req.body.files
或req.files
我得到undefined
。
任何人都可以告诉我如何通过node.js表示应用程序中的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"); },
您需要使用一个中间件来parsingNode.js中的请求中的文件:
var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); app.post('/upload', multipartMiddleware,upload);
简而言之, 中间件是处理请求的函数 。 由connect.createServer创build的服务器可以有一堆与之关联的中间件。 当一个请求进入时,它会被传递到第一个中间件函数,以及一个包装的ServerResponse对象和一个下一个callback。 每个中间件可以决定通过调用响应对象的方法来响应,或者通过调用next()将请求传递给堆栈中的下一层 。
在多部分中间件的情况下,它将调用next()方法,以便您可以编写自己的函数来响应请求。
当然你需要先安装它: npm install connect-multiparty
他们是处理分段上传的其他中间件:
- busboy和连接busboy
- 多党和连接多党
- 强大
- multer
你可能应该使用一个兼容的连接,因为快速build立在连接之上
以name
属性作为关键字在files
对象中访问它:
req.files.myFile
- 如何使用angular度追加表单字段以及如何在数据库中插入值
- Javascript和angularjs使用CORS
- XMLHttpRequest无法加载https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=
- 使Angular路线与快速路线一起工作
- 如何通过bower.json安装angular-mocks?
- 在angularjs中重复ajax调用
- Angular $ http GET不传递string到后端。 未定义?
- 为yeoman angular-fullstack项目添加新的依赖项
- 节点js如何使用“node_modules”库而不是“src = <cdn>”