首页 > 解决方案 > 如何在使用 Bot 框架的聊天机器人中获取带有 nodeJS 的 excel 文件的路径?

问题描述

我用机器人框架做了一个聊天机器人,使用这个框架可以添加附件。因此,在将 Excel 文件添加到我的聊天机器人后,我已经编写了一个代码以将我的 excel 文件保存在 base64 中。

但是我想从我的电脑中的任何地方获取一个 Excel 文件并将其转换为 base64,我需要有完整的路径,而在 NodeJS 中我不知道该怎么做。

 async attachmentsStep(stepContext, next) {
        var fs = require('fs');
        var activity = stepContext.context.activity;

        if (activity.attachments && activity.attachments.length > 0) {
            var attachment = activity.attachments[0];
            // function to encode file data to base64 encoded string
            function base64_encode(file) {
                // read binary data
                var bitmap = fs.readFileSync(file);
                // convert binary data to base64 encoded string
                return new Buffer.from(bitmap).toString('base64');
            }

            this.base64str = base64_encode( **PATH OF EXCEL FILE** + attachment.name);

            var nex = await stepContext.next();
            var base64 = this.base64str;

            return {
                base64,
                nex
            };
        } 
    }

请问你有什么想法吗?

标签: node.jsexcelpathbotframework

解决方案


您可以使用__filename__dirname来获取文件的绝对路径。

console.log(__filename);
// Prints: /Users/mjr/example.js

推荐阅读