using response object to cause save prompt (Content-Disposition Attachment Header Does Not Save File)

Hi,

I am using url rewriting to stop file downloads from my site for files that have pdf or txt extensions in the url eg. www.mysite.com/rep1.pdf.
What I am doing is using a datalist with the pdf/txt files listed on a web form and then a button next to the file where the user can click it and get the file. In the handler for the onitemcommand event I am getting the filename and using Server.Transfer to transfer to url of say the pdf/txt file and it opens the pdf fine in a browser window. The txt file just opens in the broswer as html - what I need is it to prompt to down load the file. I have tried a few things eg. using respnse.write and changing the html header Content-Disposition to Attachment but this does not work.

this issue is on the ms kb:

http://support.microsoft.com/default.aspx/kb/279667

I cannot work out how to resolve this -  my txt file actually has a different extension on the server (.acz)... I would like to use the response. write method and force a file download in any sort of way.
thanks
LVL 12
deanvanrooyenAsked:
Who is Participating?
 
naveenkohliCommented:
set the content-type property to octetstream.
0
 
deanvanrooyenAuthor Commented:
i have returned to solving this, i will let you know how it goes - do you use the server transfer or response.write, can you give me an example.
thanks
0
 
deanvanrooyenAuthor Commented:
hi the points are yours anyways ,

I found a good way to do it:

        string ContentType = "application/octet-stream";
        Response.AddHeader("Content-Disposition", "attachment; filename=\"FILENAME\"");
        Response.Charset = "UTF-8";
        Response.ContentType = ContentType;

        Response.WriteFile("../uploads/FILENAME.EXT");
        Response.End();
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.