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

使用discord.js开发Discord机器人无法发送图片问题求助

问题根因

你当前使用的是discord.js v13及以上版本,message.channel.send() 的API语法已完成重构,旧版本分开传「文本内容」「配置项」两个参数的写法已失效,因此只有文本内容被识别,附件配置没有生效。

修复方案(在线图片)

将pic命令的代码修改为如下写法,把文本和附件配置统一放在同一个对象参数中即可:

else if (command === 'pic') {
  message.channel.send({
    content: "little dog",
    files: ["https://i.imgur.com/xxXXXxx.jpeg"]
  });
}

注意:需要确保你用的imgur链接是直接指向图片资源的直链(后缀为.jpeg/.png等图片格式),不能是imgur的图片预览页面链接。

本地图片发送方案

直接将files数组内的链接替换为本地图片的相对/绝对路径即可,推荐使用path模块拼接绝对路径避免路径解析错误:

  1. 首先在代码顶部引入path模块
const path = require('path');
  1. 调整pic命令代码,假设本地图片名为dog.jpeg存放在项目根目录:
else if (command === 'pic') {
  message.channel.send({
    content: "little dog",
    files: [path.join(__dirname, 'dog.jpeg')]
  });
}

如果使用的是discord.js v14版本,也可以用官方提供的AttachmentBuilder构造附件,写法如下:

// 顶部引入AttachmentBuilder
const { Client, Intents, AttachmentBuilder } = require('discord.js');

// pic命令内写法
else if (command === 'pic') {
  // 在线图片
  const image = new AttachmentBuilder("https://i.imgur.com/xxXXXxx.jpeg");
  // 本地图片写法:const image = new AttachmentBuilder(path.join(__dirname, 'dog.jpeg'));
  message.channel.send({
    content: "little dog",
    files: [image]
  });
}

小提示:请确认你的机器人账号在对应频道拥有「附件上传」权限,否则也会出现图片无法发送的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:18:00