node.js - Nodejs 强大的更改文件名和时间戳

标签 node.js fs formidable

我在互联网上搜索过,但没有找到解决方案。 我使用 Nodejs Formidable 来处理上传的文件并将其保存到我的 API 中。

一切正常,但我想知道如何使用唯一的文件名(例如:时间戳)更改文件名(同时保留原始文件扩展名)。

这是我使用的代码:

form.on('end', function (fields, files) {

        var temp_path = this.openedFiles[0].path;
        var file_name = this.openedFiles[0].name;
        var new_location = GLOBAL.config.uploadDir;

        fs.move(temp_path, new_location + file_name, {clobber:true}, function (err) {
            if (err) {
                console.error(err);

                fs.unlink(temp_path, function (err) {
                    if (err) {
                        console.error(err);
                        console.log("TROUBLE deletion temp !");
                    } else {
                        console.log("success deletion temp !");
                    }
                });

            } else {
                res.json('created');
            }
        });
    });

有人可以就此提出解决方案吗?

最佳答案

我用了一个小技巧,我认为这是最简单的方法

let myFileName = 'image.png';
myFileName = myFileName.split('.').join('-' + Date.now() + '.');

然后你得到结果'image-1559753269107.png'

关于node.js - Nodejs 强大的更改文件名和时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862993/

相关文章:

node.js - 使用 Nodejs 和 Supertest 进行子域集成测试

javascript - Mongoose - FindOne 和 Save 不起作用

node.js - HTTP 从不同站点获取文件并以 Express 返回以供下载

node.js - 递归获取目录NodejS中的所有文件

javascript - Nodejs 中的相对路径错误?

node.js - 基本问题生产中的第一个 Node+express+Angular 应用程序

javascript - fs 读取文件位置(如果已位于文件末尾)

javascript - NodeJs/Formidable,上传图片错误

node.js - 如何在nodejs中的单个服务调用中上传和下载文件?

javascript - Node JS : File upload Error [ERR_STREAM_WRITE_AFTER_END]