I want to upload files to a folder name specified in the request (in the name fields).
I had tried to add req.body.name
but it is undefined.
Here is my code
var mongoose = require('mongoose');
var DataBase = require('../models/resource').DataBase;
var formidable = require('formidable'),
http = require('http'),
util = require('util');
var mkdirp = require('mkdirp');
var fs = require('fs');
exports.upload = function (req, res) {
var uploadDir = './uploads/databses/'+req.body.name;
mkdirp(uploadDir, function (err) {
if (err) return cb(err);
var form = new formidable.IncomingForm({
uploadDir: uploadDir,
keepExtensions: true
});
form.on('progress', function(bytesReceived, bytesExpected) {
console.log(100 * bytesReceived / bytesExpected + '%');
});
form.parse(req, function(err, fields, files) {
res.writeHead(200, {
'content-type': 'text/plain'
});
res.write('received upload:\n\n');
res.end(util.inspect({
fields: fields,
files: files
}));
});
});
};
Any help please.
Solution i've found is that i move created folder to new one
var uploadDir = './uploads/databses/temp/';
var form = new formidable.IncomingForm({
uploadDir=uploadDir,
keepExtensions: true
});
form.on('progress', function(bytesReceived, bytesExpected) {
console.log(100 * bytesReceived / bytesExpected + '%');
});
form.parse(req)
.on('field', function(name, fields) {
var body = JSON.parse(fields);
uploadDir='./uploads/databses/'+body.nameOfFolder+'/';
form.uploadDir=uploadDir;
}).on('file', function(name, files) {
//moving temp to new folder
mv('./uploads/databses/temp', form.uploadDir, {mkdirp: true},
function(err) {
});
res.end(util.inspect({
files: files
}));
})
.on('error', function(err) {
next(err);
})
.on('end', function() {
res.end();
});