在 discord.js 中发送文件缓冲区

Posted

技术标签:

【中文标题】在 discord.js 中发送文件缓冲区【英文标题】:Send buffer for file in discord.js 【发布时间】:2018-09-20 17:18:39 【问题描述】:

我知道您可以从文件名发送,但我无法访问文件系统,因为我使用的是 Heroku。

client.sendFile(messagedata, writer.toBuffer(), "file.png", "Just a message");

问题是

TypeError: client.sendFile is not a function

discord.js 中的什么等效函数可以让我将缓冲区作为文件发送?

【问题讨论】:

【参考方案1】:

.sendFile() 已弃用。现在只有.send()

要将文件发送给用户:

message.author.send(
  files: [
    attachment: 'entire/path/to/file.jpg',
    name: 'file.jpg'
  ]
)
.then(console.log)
.catch(console.error);

要将文件发送到消息通道,您可以这样做:

message.channel.send(
  files: [
    attachment: 'entire/path/to/file.jpg',
    name: 'file.jpg'
  ]
)
.then(console.log)
.catch(console.error);

【讨论】:

【参考方案2】:

我知道它很旧,但这里有一个文本示例,在不使用文件系统的情况下在通道中发送文件。

const  MessageAttachment  = require('discord.js')

const buffer = Buffer.from('Text in file')
const attachment = new MessageAttachment(buffer, 'file.txt')
channel.send(attachment)

【讨论】:

以上是关于在 discord.js 中发送文件缓冲区的主要内容,如果未能解决你的问题,请参考以下文章

使用 discord.js/javascript 请求文件、读取内容并将内容发送到频道?

为啥我的 node.js discord.js 机器人不发送文件? (没有错误)(可以发送消息)

discord.js 12 任何方式将数据从 json 文件发送到通道?

Discord .setImage 文件不在嵌入中,而是在它之前发送

Discord bot 在特定频道中发送消息

discord.js 没有发送到自定义频道