【问题标题】:Convert byte array to image on view将字节数组转换为视图上的图像
【发布时间】:2012-11-07 02:35:22
【问题描述】:

我有一个具有图像字节数组的模型。 如何将字节数组转换为 mvc.net 中视图上的图像

【问题讨论】:

  • 你能发布一些代码吗?你查过this
  • 我不想使用动作,我想在视图中转换
  • 浏览器正常下载图片,在视图中只需要指定url即可。你想完成什么?
  • 让我试图澄清这一点:您所建议的不是 HTTP 的工作方式。如果您有一张图片,则被请求的 aspx 页面会提供一个 URL,并且只为该图片提供一个 URL,并且浏览器会为该图片发出单独的 HTTP 请求。因此,您必须以对第二个请求的响应(通过 IHttpHandler)的形式将字节数组数据提供给客户端。您的 MVC 视图应该只返回图像的 URL,而不是图像本身。

标签: asp.net asp.net-mvc


【解决方案1】:

我认为您正在尝试混合两种资源:一种是 text/html 类型,另一种是 image/jpeg。它们是 2 个不同的资源,应单独请求。这意味着您不能在 html 中注入图像。

最好在单独的 Action 中以文件的形式返回图片,而 Model 字段将提供带有此 Action 的 url 的视图。

【讨论】:

  • 查看我的答案,此解决方案将响应您保存在字节数组中的任何类型的文件,包括图像。注意图像,您可能想要更改 MIME 类型。 stackoverflow.com/questions/6777491/…
  • 最好在单独的操作中将图像作为文件返回:但是这个解决方案我应该 2 连接到数据库。
  • 实际上并没有两个连接,连接池将确保不会发生这种情况。如果您不打算使用二进制图像字段,您应该关心的是检索它们。在您的数据访问层中,将文件的元数据(加载到您的视图中)与文件图像(varbinary(max) 或 blob 列)(由您的 IHttpHandler 类加载)分开。
【解决方案2】:
private void SaveImage(string path, byte[] img)
{
    FileInfo fi = new FileInfo(path);
    FileStream fs = fi.OpenWrite();
    fs.Write(img, 0, img.Length);
    fs.Flush();
    fs.Close();
}

【讨论】:

  • 将字节数组转换为视图上的图像
猜你喜欢
  • 1970-01-01
  • 2015-08-16
  • 2013-05-19
  • 2013-01-14
  • 2013-07-29
  • 2013-08-31
相关资源
最近更新 更多