0

Fairly straightforward question, I have images stored in my database as varbinary and would like to provide a link to these images rather than displaying them on the website. When a user clicks the link he/she should be able to download the image.

Dennis
  • 3,962
  • 7
  • 26
  • 44
  • [What have you tried](http://whathaveyoutried.com)? What approaches did you consider? – Oded Oct 27 '12 at 21:31

3 Answers3

3

An image is served in response to a request.

<img src="?" /> <!-- what goes here? -->

You need to create an HTTP handler to receive requests for these images.

A handler is an executable available at a specific URL which can respond to your request; in this case, by serving the binary data of an image. An ASPX page is a valid handler, though there are more efficient handler types for images.

<img src="MyHandler.aspx?imageId=123" />

The handler should do a few things:

  • validate that the ID is valid and that the caller has permissions (if needed)
  • retrieve the image from the database
  • set appropriate response headers
  • use Response.BinaryWrite() to send the binar data to the client.

Note that if you are using ASP.Net MVC, you can use a controller as your handler.

An alternative method is to base 64 encode the bytes and embed them directly in the image tag.

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">

This is a useful technique for small images or when the expense of multiple requests is very high.

See: http://en.wikipedia.org/wiki/Data_URI_scheme

More reading:

Community
  • 1
  • 1
Tim M.
  • 53,671
  • 14
  • 120
  • 163
0

You should create a page that takes an image-id and returns the image.

zmbq
  • 38,013
  • 14
  • 101
  • 171
0

You may consider this question:

Display image from a datatable in asp:image in code-behind

I had a similar problem an that answer solved my question. Beside that, you can use binaryimage component from Telerik:

http://www.telerik.com/products/aspnet-ajax/binaryimage.aspx

Community
  • 1
  • 1
Farshid
  • 5,134
  • 9
  • 59
  • 87