想上传一个包含3个文件的数组,但在我的nodejs中,我只从角度控制器中获取一个空数组。
在我的角度控制器中,我使用onchange方法从html获取文件,并使用http请求将其发送到我的nodejs后端的上传函数。
this.selectFile1 = function(files){
fileArray[0] = files[0];
self.files = files;
}
this.selectFile2 = function(files){
fileArray[1] = files[0];
self.files = files;
}
this.selectFile3 = function(files){
fileArray[2]= files[0];
self.files = files;
}
this.upload = function(){
var fd = new FormData();
var file = fileArray;
fd.append('file', file);
$http.post("/upload", fd, {
transformRequest: angular.identity,
headers: {"Content-Type": undefined}
}).then(function success(response){
if(response.status == 200){
console.log('success');
}
}, function error(response){
console.log(response.data.msgUpload);
})
}
Nodejs上传功能:
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '../uploads');
}
});
var upload = multer({ storage : storage});
router.post('/upload', upload.array('file', 3), function(req,res, next){
console.log(req.files);
if(!req.files){
res.status(400);
}else{
res.status(200);
}
});
为什么我得到一个空数组?以及如何插入要上传的文件?