Create ASP.Net Handler to return Image as Bytes

asp.net, c#

Solution

You can create a class that inherits `IHttpHandler` and within that grab the id (from the querystring or similar), process the request and return the binary data. Shouldn't have to register it with IIS...

public class MyHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        //Get Id from somewhere

        //Get binary data

        context.Response.ContentType = "application/octet-stream";
        context.Response.BinaryWrite(bytes);
    }
}

Problem

I am looking at creating a handler to return images based on id passed through, I haven't created my own one before and when I created it it mentions that it has to be registered with IIS. This project is distributed to a lot of clients, will I have to change each one's IIS or is there some way round this or an alternative to a handler? EDIT: In response to below, this is what I have created (but not yet tested), so will I need to change anything in IIS or web.config for this? ``` public class Photos : IHttpHandler { #region IHttpHandler Members public bool IsReusable { get { return true; } } public void ProcessRequest(HttpContext context) { //write your handler implementation here. var img = Image.FromFile(@"C:\Projects\etc\logo.jpg"); context.Response.ContentType = "image/jpeg"; img.Save(context.Response.OutputStream, ImageFormat.Jpeg); } #endregion } ```

Original source