【已解决】N-blog-master 开源项目中的问题-上传文件名
发布于 10 年前 作者 heixiaoshan 4566 次浏览 最后一次编辑是 8 年前

地址: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);

获得了自己想要的结果,达到文件上传后不是原名字显示。 真是感慨啊,感觉还是有什么地方不对劲。暂时先不管了。

回到顶部