【问题标题】:How to open image in new tab from generic handler?如何从通用处理程序在新选项卡中打开图像?
【发布时间】:2017-06-24 05:03:18
【问题描述】:

我设法使用通用处理程序将二进制图像从数据库显示到图像控件。我想在新选项卡上打开图像或使用鼠标右键单击复制它的链接地址。但是使用的 URL 是通用处理程序的地址 (http://localhost:1948/admin/imghndlr.ashx?serial=qwertyuiop)。我尝试搜索但没有得到任何结果,可能是使用了错误的关键字。以下是新标签页中的图片截图。

【问题讨论】:

  • 在设置到控件之前是否将二进制数据转换回图像?
  • 看起来像 PNG(请参阅前几个字母),但发送时带有错误的内容/mime 类型标头,请参阅此处stackoverflow.com/a/1031144/74585

标签: c# asp.net generic-handler


【解决方案1】:

您如何显示图像?

您的视图文件应该看起来像这样,当然您需要更改 data:image/jpeg 您使用的文件扩展名。

<img alt="" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAsMAAAGhCAIAAAALOi7ZAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QgLEhM6PUSGrwAAIABJREFUeNq8vcuSLEmWHKZ6jnlEZt5761Z3T/eAHAICAYRcEALsuOCWPzbzDfwP/gKXWJACoRDCBSkEBgPhADKY7qnu+4wIdztHuThmHh55q2t6ho+SlpaqyMwID3ez89CjqsY//dM//bM/+zMc/pGE3//PT/z09/1I0t/1Rz/x+o9+0I++vv/n8fU/8MW/9U9+9JVvL/v/u1cy86cv5ttfePXKq//8fTfhp+/qT3/oq8v+6V/+Ay/v25/+4X/46nqO"/>

如果它是一个字节文件,别忘了转换它。

Convert.ToBase64String(Foto);

【讨论】:

    【解决方案2】:

    您需要添加数据mime-type 以使浏览器知道您响应的数据是什么类型。添加的代码如下所示:

    public void ProcessRequest(HttpContext context)
    {
        //image/png is png mime
        context.Response.ContentType = "image/png";
        //read buffer from database
        context.Response.BinaryWrite(buffer);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-04
      • 2019-11-02
      • 2017-12-16
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      相关资源
      最近更新 更多