Multer is a module used along with node js and express to upload files. I am using ng-file upload module on the angular side.
When I am sending multiple files one b
If someone is facing a similar issue when uploading a custom form data object, you can use this approach. In here I am not using ngFileUpload.
var fd = new FormData();
for( var i =0; i< files.length ; i++ ){
fd.append('fileItems' , files[i] );
}
fd.append('_id', params._id );
fd.append('user', params.user );
return $http.post( ROOT_URL + '/uploadFiles/', fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined }
});
var multer = require("multer");
var upload = multer({ dest: "uploads/" });
app.post('/api/uploadFiles', upload.array('fileItems'), handlers.files.uploadFiles);
The reason for the error is that multer currently does not support the array syntax that ng-file-upload uses by default which is files[0], files[1], files[2], etc. multer is expecting a series of files with the same field name.
The easiest solution is to set ng-file-upload's arrayKey option like so to avoid appending the [index] part:
Upload.upload({
url: '/api/data/addtweet',
arrayKey: '', // default is '[i]'
data: {
files: files
}
})