【问题标题】:Silverlight convert byte[] to string for ImageSilverlight 将字节 [] 转换为图像的字符串
【发布时间】:2013-04-18 19:20:10
【问题描述】:

在我的 silvelright 应用程序中,我有一个存储在 byte[] 中的图像。我想使用 REST 服务将图像保存到 Azure Blobl 存储,但它只接受字符串 (UploadStringTaskAsync)

我尝试了很多方法将我的 byte[] 转换为有效的字符串,但没有成功:

  • Encoding.UTF8.GetString(data, 0, data.Length)

  • Encoding.Unicode.GetString(data, 0, data.Length)

  • 即使使用自定义函数(至少该函数给了我正确的字符串长度)

    var sb = new StringBuilder(); foreach(数据中的字节 b) sb.Append((char)b);

    return sb.ToString();

但图像在另一侧总是损坏和/或不可读。我做错了什么?

谢谢

【问题讨论】:

  • 为什么不使用UploadDataAsync
  • 你应该使用 ImageConverter
  • 我无法使用 UploadDataAsync,我正在使用 Silverlight
  • 您所说的 ImageConverter 是什么?如何使用它?我真的可以使用该方法从 byte[] 转换为 String 吗?

标签: silverlight azure encoding bytearray storage


【解决方案1】:

在客户端使用Convert.FromToBase64String 方法。然后在服务器上使用Convert.FromBase64String对其进行解码。

更新:
你也可以使用WebClient.OpenWriteAsync方法。

【讨论】:

  • 我无法控制服务器,因为我正在使用他们的 REST Api 将文件上传到 Azure 存储。
  • 那你可以试试WebClient.OpenWriteAsync。它适用于字节。示例:stackoverflow.com/questions/1622518/….
  • 如果您只需要将图像存储在 BLOB 中,那么您可以使用 Convert.FromToBase64String 对其进行编码并将字符串存储到 blob。稍后您可以从 blob 中获取字符串并使用 Convert.FromBase64String 对其进行解码。
  • 我需要将其作为有效文件(不是 Based64String)存储在服务器上,因为它是通过 url 直接访问的。 OpenWriteAsync 现在正在工作,但我想知道是否可以将其作为字符串上传...谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 2017-08-16
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 2012-08-10
  • 2021-07-21
相关资源
最近更新 更多