Change folder name, can name sent in request

I want to upload files to the folder name given in the request (in the name fields), I tried adding req.body.name but it's undefined This is the 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
        }));
    });

});
};

      

+3


source to share


1 answer


The solution I found was to move the created folder to a 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();
        });

      

+3


source







All Articles