onkami
onkami

Reputation: 9411

Start file download by client from Javascript call in C#/ASP.NET page?

I need to initiate file download from ASP.NET page from javascript code.

What would be my best option? Is it possible to call a webservice to do so, or somehow call usual event handler of C# page?

Note that I will retrieve a large amount of data, many megabytes.

Upvotes: 1

Views: 7575

Answers (2)

Guru Kara
Guru Kara

Reputation: 6462

You can use a hidden IFRAME element and initiate a file download request, which does give the feeling for a AJAX file download.

While the file is being downloaded you can do other activity in your form on client side.

Yes you can call a webservice or aspx page or http handler as well in this URL

function dowloadFileJS()  {
      // Create an IFRAME.
      var iframe = document.createElement("iframe");

      // Point the IFRAME to GenerateFile
      iframe.src = "GenerateFile.aspx?yourQueryString=myQueryString";

      // This makes the IFRAME invisible to the user.
      iframe.style.display = "none";

      // Add the IFRAME to the page.  This will trigger a request to GenerateFile now.
      document.body.appendChild(iframe); 
    }

Upvotes: 2

Razvan Trifan
Razvan Trifan

Reputation: 544

You can use Javascript to create an iframe to the file you want to download. Have a look at this answer: Starting file download with JavaScript

Upvotes: 0

Related Questions