如何在DiscordJS Bot中使用FS返回PNG文件而非文件名
DiscordJS Bot返回本地PNG文件的实现方法
完全可以直接返回PNG文件本身,具体实现逻辑如下:
- 拿到目标PNG的文件名后,拼接本地文件夹的完整路径,推荐用
path.resolve()方法生成绝对路径,避免相对路径受运行环境影响读取失败。 - 用fs模块的文件读取方法获取文件二进制内容:同步读取用
fs.readFileSync(文件绝对路径),异步读取用fs.readFile(文件绝对路径),最终拿到PNG文件的Buffer数据,不要停留在读取文件名的步骤。 - 配合DiscordJS的附件类包装Buffer:v14及以上版本用
AttachmentBuilder,写法示例为new AttachmentBuilder(pngBuffer, { name: '自定义展示的文件名.png' });v13及更早版本用MessageAttachment类,用法一致。 - 发送消息时,将构造好的附件对象传入消息参数的
files数组中,Discord会直接将PNG作为图片附件发送,用户接收后可直接查看图片,而非文件名文本。
内容的提问来源于stack exchange,提问作者MoulikChawla
相关产品推荐
相关产品推荐

