【问题标题】:Convert email attachment to base64将电子邮件附件转换为 base64
【发布时间】:2012-11-04 15:11:04
【问题描述】:

我想从电子邮件中获取附件并将​​其转换为 base64 字符串,以便我可以将其存储为 JSON。

在 C# 中,我会以 System.IO.Stream 的形式获取附件,将其读入字节数组,然后使用 Convert.ToBase64String

不过,在 F# 中,我不知道该怎么做(我是初学者),感觉可能有更实用的做事方式......?

【问题讨论】:

  • 电子邮件附件通常已经在邮件内部以 base64 编码。参考azure.org.ua/en/articles/…
  • 所以我可以检查附件是否为 base64 并按原样使用,这很酷,但如果不是,我仍然需要帮助。

标签: f# stream base64 bytearray c#-to-f#


【解决方案1】:

F# 将函数式风格与面向对象风格相结合,因此您可以轻松地从 F# 调用 .NET 库。有时,某些特定于 F# 的库可以为某些任务(如列表处理)提供更实用的风格,但我认为对于 base64 编码和流来说没有类似的东西。

因此,给定一个流,您可以将其读入缓冲区,然后使用 .NET 类型转换为 base64,如下所示:

open System
open System.IO

let stream = // Some stream, for example: new MemoryStream([| 1uy; 2uy; 3uy; 4uy |])
let buffer = Array.zeroCreate (int stream.Length)
stream.Read(buffer, 0, buffer.Length)
Convert.ToBase64String(buffer)

【讨论】:

  • 非常感谢。 Array.zeroCreate 是我一直在寻找的。此外,我认为我对在 F# 中使用 OO 样式有一些偏见,而实际上我应该接受它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
  • 2012-02-06
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
相关资源
最近更新 更多