Wednesday, June 5, 2024
 Popular · Latest · Hot · Upcoming
74
rated 0 times [  76] [ 2]  / answers: 1 / hits: 50677  / 12 Years ago, wed, june 6, 2012, 12:00:00

I have interesting task which requires me to download a dynamically generated file from a server (ASP.NET) to the client. On the client side it is just JavaScript (jQuery) and the client is able to generate a lot of parameters to customize how the data is exported.



What is the best way to do download the file from the server? Should I use a WCF service such as what is described here or simple page like this one?



I don't know how to download a file without reloading the page (I'm not sure that $.ajax will work in this case). Could someone please give me some direction on this topic? Thanks.


More From » asp.net

 Answers
1

First you can create the file from a handler .ashx



Let say that you have the file for downloading at download.ashx and you have some parametres to pass from your javascript, eg download.ashx?p1=8827&p2=8831 to know what you going to create.



Then on your javascript you simple can make a redirect as



window.location = download.ashx?p1=8827&p2=8831;


or alternative you can use the window.open for do the same think



window.open(download.ashx?p1=8827&p2=8831);


and your file will start the download.



Just make sure that you have set the header of attachment, and the correct contenttype on your handle eg:



  HttpContext.Current.Response.ContentType = application/octet-stream;
HttpContext.Current.Response.AddHeader(Content-Disposition,
attachment; filename= + SaveAsThisFileName);


Simple and clear, both tested and working.



Also you may interesting on this answer: How to handle errors.


[#85116] Tuesday, June 5, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
neo

Total Points: 117
Total Questions: 100
Total Answers: 95

Location: Albania
Member since Fri, Jan 28, 2022
2 Years ago
;