将文件夹名称更改为请求中发送的名称
Change folder name formidable to name sent in request
我想将文件上传到请求中指定的文件夹名称(在名称字段中)。
我曾尝试添加 req.body.name
,但它是 未定义。
这是我的代码
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
}));
});
});
};
请帮忙。
我找到的解决方案是将创建的文件夹移动到新文件夹
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();
});
我想将文件上传到请求中指定的文件夹名称(在名称字段中)。
我曾尝试添加 req.body.name
,但它是 未定义。
这是我的代码
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
}));
});
});
};
请帮忙。
我找到的解决方案是将创建的文件夹移动到新文件夹
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();
});