[ draksa @ 28.06.2007. 00:16 ] @
Imam ustvari 2 pitanja koja su povezana:

1. Kako da iniciram download fajla iz koda u ASP.NET 2.0
2. Imam nekakav gridView, selektovanjem vrste potrebno je da se inicira download dinamicki kreiranog fajla sa podacima iz gridView-a. Kako da izvedem da fajl koji korisnik downloaduje ne ostane na serveru, posto mi ocigledno nije potreban jer podatke imam u bazi.

Unapred hvala
Dragan
[ degojs @ 28.06.2007. 01:15 ] @
Pogledaj Response.Clear, Response.AddHeader, Response.ContentType, Response.BinaryWrite i Response.Terminate. Tim redom, ako nisam šta zaboravio.

Kada čovek klikne na neki element (bilo u gridviewu ili ne), lepo ga pošalješ na drugu stranicu (usput proslediš i id fajla) i onda iz Page_Load čitaš fajl iz baze i šalješ niz bajtova (vidi Response.BinaryWriter) do klijenta. I to je to.

// update
Ako fajl ipak imaš na disku možeš da koristiš Response.TransmitFile.



[Ovu poruku je menjao degojs dana 28.06.2007. u 02:26 GMT+1]
[ PremierApostile @ 28.06.2007. 08:55 ] @
Ovaj kod povlaci sa servera download,stim sto se u grid-u cuva putanja do vec gotovog fajla.
Mozda bi mogao ovo da koristis ,samo prethodno da napravis fajl iz tvog grid viewa.

Code:

   string FilePath = pretragaGridView.SelectedRow.Cells[5].Text;

        string name = Path.GetFileName(FilePath);
        try
        {
            Response.ContentType = "application/x-msdownload";
            Response.AppendHeader("content-disposition",
            "attachment; filename=" + name);
            //dodati try catch
            Response.WriteFile(FilePath);

            Response.End();
        }