【问题标题】:Upload image from MemoryStream rather than directly from hard drive从 MemoryStream 上传图片,而不是直接从硬盘上传
【发布时间】:2019-10-23 08:55:21
【问题描述】:
    using (MemoryStream stream = new MemoryStream())
        {                                                   
            bitMap.Save(stream, System.DrawingCore.Imaging.ImageFormat.Jpeg);
            stream.Seek(0, SeekOrigin.Begin);
            bitMap.Dispose();                                
            await Context.Channel.SendFileAsync(stream, "Text");                
        }

真正的快速因为我找不到具体的答案。我正在从硬盘驱动器中获取图像,将文本应用于图像并将其上传到服务器。它仅适用于与 meme 相关的内容。

问题是,我不想在上传之前将其保存到硬盘。我宁愿把它保存在 MemoryStream 中。这里的结果是它像文件传输一样上传图像,除非人们先下载,否则图像不会显示。

我认为这是因为 Discord 没有区分文件在流中的内容,而是简单地将其作为火传输发送。

有什么我可以做的吗?

【问题讨论】:

    标签: c# discord discord.net


    【解决方案1】:

    尝试指定带有可识别文件内容的扩展名的文件名,如果没有该 API,则无法提供您发送的文件类型的信息:

    await Context.Channel.SendFileAsync(stream, "image.jpeg", "Text");
    

    【讨论】:

      【解决方案2】:

      我很抱歉,但我似乎不小心偶然发现了自己的答案。如果其他人有这个问题,我会回答它以帮助他们。

      await Context.Channel.SendFileAsync(stream, "Text");  
      

      第二个参数是文件的标题。根据您在 Bitmap.Save() 期间选择的文件格式,在标题后键入文件扩展名。在我的示例中,文本应该是 Text.jpg。

      似乎这样做会告诉 Discord 将其作为图像上传而不是文件传输。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-25
        • 2023-04-08
        • 1970-01-01
        • 2019-09-25
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        相关资源
        最近更新 更多