嗨,无论出于什么原因我不能使用包裹,例如multer将文件上传到节点服务器。所以我在网上找到了例子,如果只是在表单上传文件,它工作正常。 现在我想发送另一个字段"密码"在提交期间与文件一起,只是不能使它成为一项工作。
我知道那里有很多模块,现在只想让这个例子起作用。
<form style="height: 100%;padding-bottom:63px;">
<p>
<input type="file" class="FirmwareFile"
name="myUpload" file-model="upload.newFwFile">
</p>
<p>
<input type="password" name="password" id="password"
placeholder="Password"
ng-model="upload.controllerPassword"
class="formInput">
</p>
</form>
httpSvc.uploadToUrl(myFile, myPd, myServerIPAddress, myRoute) {...}
factory.uploadToUrl = function (fwFile, pd, myServerIp, myRoute) {
var fd = new FormData();
//fd.append('passwd', pd); // cannot pass password to server side ?
fd.append('file', fwFile); // only this works
var deferred = $q.defer();
var completeUrl = ......
$http.post(completeUrl, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).success(function (data) {
deferred.resolve(data);
}).error(function () {
deferred.reject();
});
return deferred.promise;
}
在服务器端,请在哪里提取密码信息?
var UploadImage = function(req, res, callback){
var destFile = fs.createWriteStream(uploadDest + "mytest");
var fileSize = req.headers['content-length'];
req.pipe(destFile); //why not sth. like req.body.file.pipe() ?
...
};
答案 0 :(得分:1)
您的表单没有
<form enctype="multipart/form-data" action="..." method="...">
...
</form>
最好使用node-formidable。该示例直接开箱即用。您可能还想查看已经创建的angularJS特定表单上载指令。重新发明轮子毫无意义。
干杯