I don't understand your concern, but most likely you just don't understand some very basic things. If you want the user to download some file, you can simply write:
<a href="somefile.pdf'>Some PDF document</a>
On anchor click, if the client has PDF support embedded in browser or available as plug-in, it will be loaded in the page, otherwise the user will get a choice do download it or open with some viewer, default or by the user's choice; in all cases, the user can simply download the file, as always with the anchor. With other file types (very typically, *.zip), the only option will be downloading. This code assumes that you place the file in the same directory as the present page, but it can be any directory relative to this page. Avoid using absolute paths, or use just the full URL, starting with the
scheme.
Sorry if this is too trivial and you already know all that, but it actually answers your question. If you need some extra downloading features, ask about them specifically. But better start from here and hopefully you will be able to learn advanced things later.
As to your question on your error 403, please see the answer in my comment, in the discussions of the Solution 1.
On this problem, see also:
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx[
^],
http://msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx[
^].
Are you getting the idea? Normally, the applications are executed under HTTP server in a sandboxed environment which exclude the access to any directories outside the root directory mapped to the site.
—SA