【发布时间】:2021-03-10 03:45:52
【问题描述】:
我想从一些流中可用的部分数据(例如打开的文件句柄)中创建一个多部分 MIME 消息,并且我希望通过流发送生成的多部分 MIME 消息(例如作为一部分的网络端口HTTP 连接)。
但是,这些部分的大小为数 GB,因此我不想将它们保存在内存中,并且我不希望多部分 MIME 消息需要完全保存在内存中。
那么,如何创建多部分 MIME 消息而不将其保存在内存中,即在部分中流式传输并让它“即时”流出构造的消息?
我想使用第 3 方 MIME 库,但不知道是否支持这样的流式传输,并且我不愿意编写自己的。
有什么推荐的做法吗?
【问题讨论】:
-
唯一的做法是覆盖发送方法并在参数列表中包含文件名。
-
不确定我是否做错了什么...我真的很想知道哪个 MIME 库具有此流式传输功能,我将其发布为一个问题,但它已作为征求建议的请求而关闭,所以我根据我的基本要求重新表述了这个问题,但这已经被否决了。我认为问是否有解决我的问题的现有解决方案是一个合理的问题,但我的措辞是否有误?
-
这里有两个很好的链接。第一个是电子邮件 (social.msdn.microsoft.com/Forums/en-US/…) 第 3 段说你需要两个 '\r\n" 在 mime 附件之前。第二个是 Wiki (en.wikipedia.org/wiki/MIME)。当你在 Net 中使用 html 库发帖时,你附上了在调用不是你想要的方法之前的整个 mime。是创建你自己的继承 HttpWebRequest 的类,这样你就可以覆盖标准请求并添加你自己的方法来使用流发布。
-
@jdweng 感谢您的建议和提示!我的问题的核心实际上是“任何 mime 库都已经这样做了”,看起来答案是我需要推出自己的系统。
\r\n是一个很好的提示。我实际上并没有通过 HTTP 发送它,所以可以处理它的那一面。 -
唯一的库我知道你将输出的 xml 作为字符串而不是流传递。