I have found the following asp.net code to be very useful when serving files from a database:
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
This lets the user save the file to their computer and then decide how to use it, instead of the browser trying to use the file.
What other things can be done with the content-disposition response header?
Best Solution
Note that RFC 6266 supersedes the RFCs referenced below. Section 7 outlines some of the related security concerns.
The authority on the content-disposition header is RFC 1806 and RFC 2183. People have also devised content-disposition hacking. It is important to note that the content-disposition header is not part of the HTTP 1.1 standard.
The HTTP 1.1 Standard (RFC 2616) also mentions the possible security side effects of content disposition: