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

C# 使用Discord.Net如何向Embed嵌入本地图片而无需上传外部图床

本地文件作为Embed图片实现方案

核心逻辑

你现有代码的实现思路是正确的,仅需要调整attachment://后的拼接内容:该地址仅允许填写你要上传的文件名称,不能传入本地完整路径。

修正后代码

// 提取文件的纯文件名(不带本地路径前缀)
var fileName = Path.GetFileName(path);
var emb = new EmbedBuilder()
    .WithColor(Color.Blue)
    .WithTimestamp(DateTime.Now)
    .WithTitle(rarity)
    .WithDescription($"{Context.User.Username} dropped a card!")
    // 此处仅拼接提取到的纯文件名即可
    .WithImageUrl($"attachment://{fileName}")
    .Build();
// 第一个参数仍使用你原本的本地文件路径
await Context.Channel.SendFileAsync(path, null, false, emb);

注意事项

  • 如果代码提示Path类不存在,需要在代码顶部引入using System.IO;命名空间
  • 确保传入SendFileAsync的路径可以正常访问到目标本地文件,权限、路径拼写无误
  • attachment://后拼接的文件名必须和你上传的文件实际名称完全一致,大小写也要匹配,否则Discord无法将附件和Embed的图片关联
  • 该方案不需要将文件上传到第三方图床,完全走本地附件上传逻辑,适合图片频繁更新的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:36:02