You want to create a general-purpose file handler to download files of any type where the name of the file being downloaded is provided at runtime.
Create an HTTP handler to read the required file from the filesystem and send it to the browser. The steps for creating an HTTP handler are defined in Recipe 20.1.
Examples 20-8 and 20-9 show the VB and C# class files we’ve written to implement a file download HTTP handler. Examples 20-10, 20-11 through 20-12 show the .aspx file and the VB and C# code-behind files for our application that demonstrates the use of the file download HTTP handler.
Of the many ways you might implement a reusable file download routine that can handle almost any file type, creating an HTTP handler makes the most sense. HTTP handlers are designed to process requests for resources, and a file download request is a special instance of such a request.
The file download HTTP handler described in our example downloads a file from the local filesystem to the user’s system. The name of the file to download is passed in the URL used to access the HTTP handler.
The first step in implementing the file download HTTP handler is to create a class that implements
IHttpHandler. The class can be part of your web project, or if you want it to be reusable across applications, you can place it in a project by itself so a separate assembly can be created, as described in Recipe 20.1.
As discussed in the previous recipe, ...