node.js - 如何在使用 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
};
}
}
请问你有什么想法吗?
解决方案
您可以使用__filename和__dirname来获取文件的绝对路径。
console.log(__filename);
// Prints: /Users/mjr/example.js
推荐阅读
- c++ - MPI_Win_create 在原点的运行时间随着目标窗口大小的增加而增加
- jenkins - Jenkins 工作在尝试归档工件时如何忽略工作区?
- javascript - 如何解决 Fetch API js 中的 CORS 错误
- java - 根据 mouseEntered 和 mouseExited 更改组件的状态
- c++ - 无法反向操作。表示它无法将 void 转换为字符串但我的结果保存为字符串的错误。已显示代码以供参考
- azure - 通过 KeyVault 为 Azure Function 指定存储帐户
- concurrency - 计划的 Camel SQL 消费者,限制路由之间的并发
- redirect - wifi连接后将用户重定向到网页
- angular - Angular 12 Material Icon 外部元素
- javascript - 从 Go 提供 javascript 时 mime 类型不正确