如何重命名node.js中的文件?
我正在尝试使用angular和node实现一个文件上传表单。文件上传很好,但我想扫描上传目录,看看文件名是否已经存在。如果是这样,那么该文件将被重命名。以下是我到目前为止的情况:如何重命名node.js中的文件?,node.js,Node.js,我正在尝试使用angular和node实现一个文件上传表单。文件上传很好,但我想扫描上传目录,看看文件名是否已经存在。如果是这样,那么该文件将被重命名。以下是我到目前为止的情况: app.post('/file', function(req, res) { var fs = require('fs'); var file = req.files.file; // destination directory var dest_dir = './uploads;
app.post('/file', function(req, res) {
var fs = require('fs');
var file = req.files.file;
// destination directory
var dest_dir = './uploads;
var filename = file.name;
// THIS ISN'T WORKING, I.E., THE FILE IS NOT RENAMED
fs.readdir(dest_dir, function(err, dir_files) {
for(var i = 0; i < dir_files.length; i++) {
if(dir_files[i] == filename) {
console.log("I can see this message, but the file isn't renamed");
filename = filename + '_1'; // rename the file
}
}
});
// read file from temp dir and store in permanent dir
var source = fs.createReadStream(file.path);
var dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
source.on('end', function() { res.json("File has been uploaded!") });
source.on('error', function(err) { res.json("There was an error when attempting to upload this file.") });
});
app.post('/file',函数(req,res){
var fs=需要('fs');
var file=req.files.file;
//目标目录
var dest_dir='/上传;
var filename=file.name;
//这不起作用,即文件未重命名
fs.readdir(dest\u dir,函数(err,dir\u文件){
对于(var i=0;i
我做错了什么?用于重命名节点中的文件。用于重命名节点中的文件。用于重命名节点中的文件。用于重命名节点中的文件。fs.readDir()是异步的,因此在fs.readDir()回调中的for循环之前执行以下代码:
var dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
如果要在for循环之后执行,则需要将此代码放入回调中。变化如下:
app.post('/file', function(req, res) {
var fs = require('fs');
var file = req.files.file;
var source = fs.createReadStream(file.path);
var dest;
// destination directory
var dest_dir = './uploads;
var filename = file.name;
fs.readdir(dest_dir, function(err, dir_files) {
for(var i = 0; i < dir_files.length; i++) {
if(dir_files[i] == filename) {
console.log("I can see this message, but the file isn't renamed");
filename = filename + '_1'; // rename the file
break;
}
}
dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
});
source.on('end', function() { res.json("File has been uploaded!") });
source.on('error', function(err) { res.json("There was an error when attempting to upload this file.") });
app.post('/file',函数(req,res){
var fs=需要('fs');
var file=req.files.file;
var source=fs.createReadStream(file.path);
var-dest;
//目标目录
var dest_dir='/上传;
var filename=file.name;
fs.readdir(dest\u dir,函数(err,dir\u文件){
对于(var i=0;i
})) fs.readDir()是异步的,因此下面的代码在fs.readDir()回调中的for循环之前执行:
var dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
如果要在for循环之后执行,则需要将此代码放入回调中。变化如下:
app.post('/file', function(req, res) {
var fs = require('fs');
var file = req.files.file;
var source = fs.createReadStream(file.path);
var dest;
// destination directory
var dest_dir = './uploads;
var filename = file.name;
fs.readdir(dest_dir, function(err, dir_files) {
for(var i = 0; i < dir_files.length; i++) {
if(dir_files[i] == filename) {
console.log("I can see this message, but the file isn't renamed");
filename = filename + '_1'; // rename the file
break;
}
}
dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
});
source.on('end', function() { res.json("File has been uploaded!") });
source.on('error', function(err) { res.json("There was an error when attempting to upload this file.") });
app.post('/file',函数(req,res){
var fs=需要('fs');
var file=req.files.file;
var source=fs.createReadStream(file.path);
var-dest;
//目标目录
var dest_dir='/上传;
var filename=file.name;
fs.readdir(dest\u dir,函数(err,dir\u文件){
对于(var i=0;i
})) fs.readDir()是异步的,因此下面的代码在fs.readDir()回调中的for循环之前执行:
var dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
如果要在for循环之后执行,则需要将此代码放入回调中。变化如下:
app.post('/file', function(req, res) {
var fs = require('fs');
var file = req.files.file;
var source = fs.createReadStream(file.path);
var dest;
// destination directory
var dest_dir = './uploads;
var filename = file.name;
fs.readdir(dest_dir, function(err, dir_files) {
for(var i = 0; i < dir_files.length; i++) {
if(dir_files[i] == filename) {
console.log("I can see this message, but the file isn't renamed");
filename = filename + '_1'; // rename the file
break;
}
}
dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
});
source.on('end', function() { res.json("File has been uploaded!") });
source.on('error', function(err) { res.json("There was an error when attempting to upload this file.") });
app.post('/file',函数(req,res){
var fs=需要('fs');
var file=req.files.file;
var source=fs.createReadStream(file.path);
var-dest;
//目标目录
var dest_dir='/上传;
var filename=file.name;
fs.readdir(dest\u dir,函数(err,dir\u文件){
对于(var i=0;i
})) fs.readDir()是异步的,因此下面的代码在fs.readDir()回调中的for循环之前执行:
var dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
如果要在for循环之后执行,则需要将此代码放入回调中。变化如下:
app.post('/file', function(req, res) {
var fs = require('fs');
var file = req.files.file;
var source = fs.createReadStream(file.path);
var dest;
// destination directory
var dest_dir = './uploads;
var filename = file.name;
fs.readdir(dest_dir, function(err, dir_files) {
for(var i = 0; i < dir_files.length; i++) {
if(dir_files[i] == filename) {
console.log("I can see this message, but the file isn't renamed");
filename = filename + '_1'; // rename the file
break;
}
}
dest = fs.createWriteStream(dest_dir + '/' + filename);
source.pipe(dest);
});
source.on('end', function() { res.json("File has been uploaded!") });
source.on('error', function(err) { res.json("There was an error when attempting to upload this file.") });
app.post('/file',函数(req,res){
var fs=需要('fs');
var file=req.files.file;
var source=fs.createReadStream(file.path);
var-dest;
//目标目录
var dest_dir='/上传;
var filename=file.name;
fs.readdir(dest\u dir,函数(err,dir\u文件){
对于(var i=0;i
}))