You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JDA使用addFiles()方法发送图片?当前实现遇报错

解决JDA最新版本发送图片的报错问题

你的报错核心原因是**FileUpload构造函数使用错误**——JDA的FileUpload没有仅接收InputStream的重载,必须同时指定文件名(Discord需要文件名识别文件类型)。

修正方案

给FileUpload补充文件名参数,或使用更简洁的fromData静态方法:

方法1:使用fromData静态方法(推荐)

byte[] buffer = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
// 第二个参数为带后缀的文件名,让Discord识别图片格式
FileUpload upload = FileUpload.fromData(buffer, "output.png");
c.sendMessage("Image:").addFiles(upload).complete();

方法2:补全FileUpload构造函数参数

byte[] buffer = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
// 构造函数需同时传入InputStream和文件名
FileUpload upload = new FileUpload(new ByteArrayInputStream(buffer), "output.png");
c.sendMessage("Image:").addFiles(upload).complete();

额外注意

  • 确保img是BufferedImage类型,否则getRaster().getDataBuffer()的强制转换可能抛出异常。
  • 文件名后缀必须与图片格式匹配(如.png对应PNG图),否则Discord可能无法将其识别为图片展示。

内容的提问来源于stack exchange,提问作者Gork

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:31:59