Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C# download file ???

[es] :: .NET :: .NET Desktop razvoj :: C# download file ???

[ Pregleda: 3458 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mikelins

Član broj: 100604
Poruke: 15
*.rtv.co.yu.



Profil

icon C# download file ???02.08.2007. u 09:41 - pre 203 meseci
U web aplikaciji mi je potrebno da klikom na Button download-ujem fajl sa mogucnoscu izbora gde da ga snimim. Imam URL fajla koji zelim da download-ujem.
hvala
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: C# download file ???02.08.2007. u 09:49 - pre 203 meseci
U Response spostavi property ContentType na "octet/stream", i dodaj heder Content-Disposition da je "attachment;filename=ime_tvog_fajla" preko metode AddHeader. Posle sa WriteFile metodom saljes fajl.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

bunker
Srđan Savković
Smederevo

Član broj: 4495
Poruke: 239
212.5.210.*



Profil

icon Re: C# download file ???02.08.2007. u 10:44 - pre 203 meseci
Da se ne bi mnogo pisalo, bolje je ovako:

u while petlji se podaci baferuju, u suprotnom bi imao gresku sa vecim fajlovima koje prevuces. Ovo bi trebalo da ti zavrsi posao. Mozes da iskljucis static i da dodas ivent hendlere kako bi izveo neki progres bar (ako skidas velike fajlove bilo bi korisno)

Code:

        public static MemoryStream HttpDownload(string p_URL)
        {
            HttpWebRequest  request = null;
            HttpWebResponse response = null;
            Stream responseStream = null; 
            try 
            {
                request = (HttpWebRequest) WebRequest.Create(p_URL);
                request.Credentials = CredentialCache.DefaultCredentials;
                response = (HttpWebResponse) request.GetResponse();
                responseStream = response.GetResponseStream();
            
                byte[] fileSize = new byte[response.ContentLength];
                int bufferSize = 4096;
                byte[] buffer = new byte[bufferSize];

                int targetBufferIndex = 0;
                while(true)
                {
                    int n = responseStream.Read(buffer, 0, bufferSize);
                    if (n == 0)    break;
                    Array.Copy(buffer, 0, fileSize, targetBufferIndex, n);
                    targetBufferIndex += n;
                }
                return new MemoryStream(fileSize, 0, fileSize.Length);
            }
            catch 
            {
                throw;
            }
            finally
            {
                if(null != responseStream) responseStream.Close();
                if(null != response) response.Close();
                if(null != request) request.Abort();
            }
        }

Nije važno stići prvi. Važno je prvo da stigneš.
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: C# download file ???

[ Pregleda: 3458 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.