I am trying to upload file using angular js
var requestData = {
url: "/file_upload",
data: {"name":"jack", file:file},
};
Upload.upload(requestData);
This is what my controller have.
app.post("/file_upload", function(req, res){
console.log(req.body.name);
res.send("uploading...");
});
This is what my route have. Here it is printing 'undefined' instead of name.
Please help me.
You can send more parameters in data
field.
This is how I'm using upload function :
Upload.upload({
url: url,
method: 'POST',
file: file,
data: {name:'Hello!'} // Here you can send JSON parameters
});
Hope it helps.
EDIT
This is how I'm receiving my file on Node.js side
Multer middleware function
var uploader = multer({
storage: multer.diskStorage({
destination: function (req, file, next) {
next(null, '/path/to/final/file');
},
filename: function (req, file, next) {
next(null, 'finalFileName.csv');
}
}),
limits: {
fieldNameSize: 100,
fileSize: 20000000,
files: 1,
fields: 5
}
}).single('file');
My route
server.post('/file_upload', function (req, res) {
uploader(req, res, function (err) { // call uploader middleware
if (err) {
throw err;
}
else if (req.file) {
console.log(req.file);
console.log(req.body.name); // I can use parameters
res.status(200).json('OK!').end();
}
else {
res.status(424).json('Error !').end();
}
});
});
Hope it helps.