相当简单的问题,我将图像存储在我的数据库中作为varbinary,并希望提供这些图像的链接,而不是在网站上显示它们。当用户点击链接时,他/她应该能够下载图像。
答案 0 :(得分:3)
响应请求提供图像。
<img src="?" /> <!-- what goes here? -->
您需要创建一个HTTP handler来接收这些图片的请求。
处理程序是特定URL上可用的可执行文件,可以响应您的请求;在这种情况下,通过提供图像的二进制数据。 ASPX页面是一个有效的处理程序,尽管图像有更高效的处理程序类型。
<img src="MyHandler.aspx?imageId=123" />
处理程序应该做一些事情:
Response.BinaryWrite()
将二进制数据发送给客户端。请注意,如果您使用的是ASP.Net MVC,则可以使用控制器作为处理程序。
另一种方法是基于64对字节进行编码并将它们直接嵌入图像标记中。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">
对于小图像或多个请求的费用非常高,这是一种非常有用的技术。
请参阅:http://en.wikipedia.org/wiki/Data_URI_scheme
更多阅读:
答案 1 :(得分:0)
您应该创建一个采用image-id并返回图像的页面。
答案 2 :(得分:0)
您可以考虑这个问题:
Display image from a datatable in asp:image in code-behind
我有一个类似的问题,答案解决了我的问题。除此之外,您还可以使用Telerik的binaryimage组件:
http://www.telerik.com/products/aspnet-ajax/binaryimage.aspx