I'm using angular-file-upload too and a node.js server.
This is how I upload my file in my angular controller:
$scope.uploadInternationalFile = function(file) {
if (file && file.length) {
file.upload = Upload.upload({
url: '/api/upload',
method: 'POST',
file: file
});
file.upload.then(function(response) {
// file Sent
});
}
};
And I receive my file on my server like this with npm 'multer' package:
module.js
var privateStorage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, './files/');
},
filename: function(req, file, callback) {
callback(null, file.originalname);
}
});
var limits = {
fieldNameSize: 100,
fileSize:20000000,
files: 1,
fields: 5
};
var self = module.exports = {
uploadPrivate: multer({
storage:privateStorage,
limits:limits
}).single('file')
};
And this is my API:
var fileUpload = require('module.js');
app.post('/api/upload', function(req, res) {
fileUpload.uploadPrivate(req, res, function(err) {
if (err) {
// There is an upload error
}
else {
// Your file has been sent
}
}
});
Hope it helps.
Content-Length...