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请求时,我需要指定fileFormDataNamefilename ,我可以使用该名称来获取后端的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); });