我想将文件发送到我的Node.js应用程序,但似乎应用程序没有收到任何内容。我不知道该怎么做。我该如何检查如果我已经发送了该文件,并且如果我在req
中收到它?将文件从Angular发送到Node Express
<form>
<input type = "file" file-model="files" multiple/>
<button class="md-primary md-button md-cyan-theme md-ink-ripple" ng-click = "vm.uploadFile()">upload me</button>
</form>
这是我的控制器:
function uploadFile() {
console.log("Load");
var fd = new FormData();
console.log($scope.files) // FileList {0: File, Length: 1}
angular.forEach($scope.files, function (file) {
fd.append('file', file);
});
console.log(fd); // FormData {} (Empty?)
$http.post('http://localhost:8090/file-upload'), {
headers: {'Content-Type': undefined },
files: fd
}).success(function (d) {
console.log(d);
});
}
这是我的指令:
.directive('fileMode', ['$parse', function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('change', function() {
$parse(attrs.fileModel).assign(scope, elemtn[0].files);
scope.$apply();
});
}
};
}])
这里是我的快递应用程序:
app.post('/file-upload', function (req, res, next) {
console.log("Sent!");
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, cb) {
cb(null, file.fieldname);
}
});
var upload = multer({ storage : Storage }).array('userPhoto', 2);
upload(req, res, function (err) {
console.log(req.body.data.files);
if (err) return res.end("Error uploading file.");
res.end("File is uploaded.");
})
})
谢谢你的帮助。
那你的后端代码? – Aer0
增加了后端代码 – Serhiy