【已解决】N-blog-master 开源项目中的问题-上传文件名
地址:https://github.com/nswbmw/N-blog 1.文件上传后的名字还是原始名字,通过后台输出,fs.renameSync 方法是有效的。但是为什么上传到服务器名字还是没变呢?求大神解惑。 index.js中的代码
app.post('/upload', checkLogin);
app.post('/upload', function (req, res) {
var img='';
for (var i in req.files) {
if (req.files[i].size == 0){
// 使用同步方式删除一个文件
fs.unlinkSync(req.files[i].path);
console.log('Successfully removed an empty file!');
} else {
var target_path = './public/images/' + req.files[i].name;
// 使用同步方式重命名一个文件
fs.renameSync(req.files[i].path, target_path);
console.log('req.files[i].path'+req.files[i].path+',target_path:'+target_path);
console.log('Successfully renamed a file!');
}
}
req.flash('success', '文件上传成功!');
res.redirect('/upload');
});
\n```
后台输出的结果
GET /icon/hlw.jpeg 304 162ms
Successfully removed an empty file!
**req.files[i].path:public\images\13044-106kxba.jpg**
target_path:./public/images/4.jpg
Successfully renamed a file!
req.files[i].path:public\images\13044-r5fc9f.jpg
**target_path:./public/images/222.jpg**
Successfully renamed a file!
Successfully removed an empty file!
Successfully removed an empty file!
POST /upload 302 14ms - 70b
4 回复
js\n fs.rename(req.files[i].path, target_path); \n
结果也是一样的
仔细想了应该是重命名文件没有生成。
最终测试,发现将两个参数对转过来。两个文件都生成了。但是报404错了
再测试,修改
var target_path =req.files[i].path;
// 使用同步方式重命名一个文件
fs.renameSync(req.files[i].path, target_path);
获得了自己想要的结果,达到文件上传后不是原名字显示。 真是感慨啊,感觉还是有什么地方不对劲。暂时先不管了。