Downloading a file to client

I

Ian Gordon

Hi,

I have 2 problems when downloading a file from my ASP.net app to the client
PC. At the moment I'm doing it with the following code:

Response.ContentType = "application/octet-stream"

Response.AddHeader("Content-Disposition", "attachment; filename=" +
strFileToDownload)

Response.WriteFile(strFileToDownload)



The problems are:
1. How can I set the name of document to be downloaded? At the moment, the
name of file is by default set to be the name of the web form that it comes
from, which is far from ideal. to be able to call it, for example,
myFile.doc.
2. How can I try and force the save to be in a specific directory, or even
to default to the Windows temp directory, or to My Documents? At the moment,
the default target directory seems quite different on different machines.

All help very much appreciated.

Ian
(e-mail address removed)
 
W

William F. Robertson, Jr.

Also you might want to look at putting a marker such as " or ' around the
file name. If there are spaces in the filename, I don't know exactly that
would do, but I am sure it isn't going to be desired behavior.

Also it might be a setting on the broswer you are using. I had a web app
for the division I am in that worked fine, except when the site was used
outside the development group. The firm standard did not allow the filename
to be passed to the download dialog.

bill
 
B

Bill Priess

Hi Ian,

The fix is in this line:
Response.AddHeader("Content-Disposition", "attachment; filename=" +
System.IO.Path.GetFileName(strFileToDownload))

The Content-Disposition header requires only the file name, not the entire
path. When given the entire path, it negates and the browser will not set a
name for the file download dialog.

Also, you should call Response.Clear() before you add your headers just to
make sure that there are no other headers being sent down to the browser.


As for the second part of your question, no. This is a serious breach of
security.

HTH,

Bill P.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,997
Messages
2,570,241
Members
46,831
Latest member
RusselWill

Latest Threads

Top