将从数据库中取出的二进制流显示为html内的"image"作为<img>标记

Sha*_*uaz 6 c# asp.net webforms

我试图在Web表单上显示从数据库中以二进制流的形式提取的图像.你能谈谈这个吗?

我正在开发一个用户拥有个人资料的项目,每个用户都有自己的个人资料图片显示在主页中.这张照片来自数据库.

这是我用来获取流的代码!

TestDBDataContext context1 = new TestDBDataContext();

            var r = (from a in context1.ImageTables where a.Id == 8 select a).First();

           MemoryStream stream = new MemoryStream(r.FileImage.ToArray());
Run Code Online (Sandbox Code Playgroud)

谢谢

Ada*_*ter 8

Base64编码您的二进制文件并插入图像标记,如下所示(更改mimetype以适应):

<img src="data:image/gif;base64,BASE64 ENCODED BINARY HERE">
Run Code Online (Sandbox Code Playgroud)

你就是这样做的,但我不会这样做,因为有些浏览器无法处理它(IE6).最好先保存到文件并按常规方式执行.


DJ *_*mby 4

我过去所做的是将图像 url 设置为 aspx 页面,如下所示:

<img src="getLogo.aspx" alt="Logo" />
Run Code Online (Sandbox Code Playgroud)

然后,在 getLogo.aspx 的代码隐藏中,我完成了以下操作:

Response.BinaryWrite( imageData );
Response.ContentType = "image/gif";
Run Code Online (Sandbox Code Playgroud)

imageData作为字节数组的图像在哪里

  • 没有 POST,因为带有图像标签的页面甚至不知道它正在为图像调用 aspx 页面,它只是编写“图像 uri”。同样,显示该图像的页面也不知道或关心它是如何被调用的。他们俩彼此分开得很好。 (2认同)