multiparty for nodejs不parsing任何上传的文件
我试图在后端使用sails.js节点(多方)+angular(angularfile upload)上执行简单的上传文件。 似乎前端正确地向后端发送了一个文件,但似乎后端没有收到任何内容,或者响应无效的请求(不一致)。 form.parse部分回应空字段和文件。 我在这里呆了几个小时,用Googlesearch了解多方的问题,但是我找不到任何有用的信息。 任何意见将不胜感激
请求标题:
Accept:application/json, text/plain, */* Accept-Encoding:gzip, deflate Accept-Language:en-US,en;q=0.8 Connection:keep-alive Content-Length:76632 Content-Type:multipart/form-data; boundary=----WebKitFormBoundary7iH8B208bfkavrKt Cookie:sails.sid=s%3AY9YwxQC90Sq7pc3bp-scW7EH.%2B%2FYHfrTXCUzfPOBpeEt7VFH6Npw3s05Rqyfgu6DHVdg Host:localhost:1337 Origin:http://localhost:1337 Referer:http://localhost:1337/kirill User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 Request Payload ------WebKitFormBoundary7iH8B208bfkavrKt Content-Disposition: form-data; name="file"; filename="10923270_813578785376550_5210357694589684637_n.jpg" Content-Type: image/jpeg ------WebKitFormBoundary7iH8B208bfkavrKt--
后端(具有多方的节点):
upload: function(req, res) { var multiparty = require('multiparty'); var fs = require('fs'); var util = require('util'); var form = new multiparty.Form(); form.parse(req, function(err, fields, file){ if (err) { res.writeHead(400, {'content-type': 'text/plain'}); res.end("invalid request: " + err.message); return; } console.log(file); res.writeHead(200, {'content-type': 'text/plain'}); res.write('received fields:\n\n '+util.inspect(fields)); res.write('\n\n'); res.end('received files:\n\n '+util.inspect(file)); }); }
前端(带有angular度file upload的angular度):
$scope.upload = function () { //console.log($scope.file); if ($scope.file.data[0]){ console.log("uploading file.."); console.log($scope.file.data[0]); $upload.upload({ url: 'api/v1.0/upload', method: 'POST', file: $scope.file.data[0] }).progress(function(evt){ var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); console.log('progress: ' + progressPercentage + '% ' + evt.config.data.name); }).success(function (data, status, headers, config){ console.log('file ' + config.file.name + ' uploaded. Response: ' + data.status); }); } }
我改变了使用船长在默认情况下与风帆JS的后端船长。 当向后端发送post请求时,我需要指定fileFormDataName
为filename
,我可以使用该名称来获取后端的req.file('filename')。
将内容types设置为多部分:
$upload.upload({ url: 'api/v1.0/upload', method: 'POST', data: { 'Content-Type': 'multipart/form-data' }, file: $scope.file.data[0] }).progress(function(evt){ var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); console.log('progress: ' + progressPercentage + '% ' + evt.config.data.name); }).success(function (data, status, headers, config){ console.log('file ' + config.file.name + ' uploaded. Response: ' + data.status); });
- 是使用Firebase作为AngularJS和NodeJS之间的一个“不好”的想法?
- 我们可以从Visual Studio任务运行器资源pipe理器中运行npm start
- 使用Node和Express构buildAngular应用程序时,是否有必要使用JADE?
- 如何使用AngularJS从NodeJS“获得”
- 阻止使用AngularJs和Node.js / Express直接访问文件
- angular js ng-view返回blanc partials – Express / Jade
- 向本地主机请求远程服务器获取预检请求'Access-Control-Allow-Origin'
- 无法将nodemailer错误响应从node.js发送到angular.js
- AngularJS应用程序的dynamic页面标题