C# 从MemoryStream而不是直接从硬盘上传图像

C# 从MemoryStream而不是直接从硬盘上传图像,c#,discord,discord.net,C#,Discord,Discord.net,很快,因为我找不到具体的答案。我正在从硬盘上拍摄图像,将文本应用于图像并将其上载到服务器。这只是为了和模因有关的东西 问题是,我不想在上传之前把它保存到硬盘上。我宁愿把它记在记忆里。这里的结果是,它像文件传输一样上传图像,除非人们先下载图像,否则不会显示图像 我想这是因为Discord并不是区分流中的文件,而是简单地将其作为fire传输发送 我能做些什么吗?我很抱歉,但我似乎无意中找到了自己的答案。如果其他人有这个问题,我会回答以帮助他们 using (MemoryStream stre

很快,因为我找不到具体的答案。我正在从硬盘上拍摄图像,将文本应用于图像并将其上载到服务器。这只是为了和模因有关的东西

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

我想这是因为Discord并不是区分流中的文件,而是简单地将其作为fire传输发送


我能做些什么吗?

我很抱歉,但我似乎无意中找到了自己的答案。如果其他人有这个问题,我会回答以帮助他们

    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");                
        }
第二个参数是文件的标题。根据在位图.Save()过程中选择的文件格式,在标题后键入文件扩展名。在我的示例中,Text应该是Text.jpg


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

我很抱歉,但我似乎无意中找到了自己的答案。如果其他人有这个问题,我会回答以帮助他们

    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");                
        }
第二个参数是文件的标题。根据在位图.Save()过程中选择的文件格式,在标题后键入文件扩展名。在我的示例中,Text应该是Text.jpg


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

尝试指定文件名,扩展名用于标识文件内容,如果API不知道您发送的文件类型:

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

尝试指定扩展名为的文件名,该扩展名用于标识文件内容,如果没有该扩展名,API将无法提供您要发送的文件类型的信息:

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