如何在通用处理程序的新选项卡中打开图像?

时间:2017-02-07 04:14:47

标签: c# asp.net generic-handler

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

2 个答案:

答案 0 :(得分:0)

你是如何显示图像的?

您的视图文件应该如下所示,当然您需要更改数据: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);

答案 1 :(得分:0)

您需要添加数据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);
}