Les Snippets

Connexion

Télécharger un fichier avec timeout

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 10/03/2007 11:38:46 et initié par Willi [Liste]
Vue : 7517
Catégorie(s) : Réseau & Internet
Langages dispo pour ce code :
- VB 2005, VB.NET 1.x
- VB 2005
- C# 1.x, C# 2.x, C# 3.x



Langage : VB.NET 1.x , VB 2005
Date ajout : 10/03/2007
Posté par Willi [Liste]
Utilisation avec timeout de 10 secondes
DownloadFile("http://www.toto.com/fichier.zip","c:\fichier.zip,10000)

Public Sub DownloadFile(ByVal RemoteFilePath As String, ByVal SaveFilePath As String, ByVal TimeOut As Integer, Optional ByVal BlockSize As Integer = 1024)Dim wr As WebRequest = WebRequest.Create(RemoteFilePath) 
wr.Timeout = TimeOut

Dim wresp As WebResponse = wr.GetResponse()
Dim RemoteStream As Stream = wresp.GetResponseStream() 
Dim LocalStream As New FileStream(SaveFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read)
Dim LocalStreamW As New BinaryWriter(LocalStream) 
Dim buff As Byte() = New Byte(BlockSize - 1) {}
Dim iBytesRead As Integer = 1While iBytesRead > 0 
iBytesRead = RemoteStream.Read(buff, 0, buff.Length)

LocalStreamW.Write(buff, 0, iBytesRead)

End While

wresp.Close()

RemoteStream.Close()

RemoteStream.Dispose()

LocalStreamW.Close()

LocalStream.Close()

LocalStream.Dispose()

End Sub

Remarque :
Ajouter les directives
Imports System.IO
Imports System.Net
Langage : VB 2005
Date ajout : 10/03/2007
Posté par Willi [Liste]
My.Computer.Network.DownloadFile(New Uri("http://www.toto.com/fichier.zip"), "c:\fichier.zip", "", "", False, 10000)
Langage : C# 1.x , C# 2.x , C# 3.x
Date ajout : 05/07/2008
Posté par surfzoid [Liste]
DownLoadFile(VarGlobal.MonoHttpTarGz,VarGlobal.MonoTarGz,10000,1024);
         /// <summary>
        /// 
        /// </summary>
        /// <param name="Srce">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="Dest">
        /// A <see cref="System.String"/>
        /// </param>
        /// <param name="TimeOut">
        /// A <see cref="System.Int32"/>
        /// </param>
        /// <param name="BlockSize">
        /// A <see cref="System.Int32"/>
        /// </param>
        int ProgressDll = 0;
        private void DownLoadFile(string Srce, string Dest,int TimeOut,int BlockSize)
        {
            System.Net.WebRequest request = System.Net.WebRequest.Create(Srce);
            request.Timeout = TimeOut; 
            System.Net.WebResponse response = request.GetResponse(); 
            System.IO.Stream responseStream = response.GetResponseStream();
            
            FileStream LocalStream = new FileStream(Dest, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
            BinaryWriter LocalStreamW = new BinaryWriter(LocalStream); 
            byte[] buff = new byte[BlockSize - 1];
            int iBytesRead  = 1;
            
            while (iBytesRead > 0 )
            {
                iBytesRead = responseStream.Read(buff, 0, buff.Length);
                LocalStreamW.Write(buff, 0, iBytesRead);
                ProgressDll +=1;
                Console.WriteLine(ProgressDll);
            }
            response.Close();
            responseStream.Close();
            responseStream.Dispose();
            LocalStreamW.Close();
            LocalStream.Close();
            LocalStream.Dispose();                    
        }
         
    }

Remarque :
Merci Willi, super bout de code, le My n'existe pas en C#.

Snippets en rapport avec : Webrequest, Downloadfile, Timeout



Codes sources en rapport avec : Webrequest, Downloadfile, Timeout

{Visual Basic, VB6, VB.NET, VB 2005} TÉLÉCHARGER UNE IMAGE D'UN SITE WEB ET L'AFFICHER DANS UN PICTUREBOX
Bonjour, Voici un simple exemple qui illustre l'utilisation des deux classes HttpWebRequest et Ht...

{C# / C#.NET} DOWNLOADMANAGER ASYNCHRONE RÉUTILISABLE
Comme son nom l'indique, c'est un gestionnaire de téléchargements. Il n'a de composant que sa possib...

{JAVA / J2EE} TIMEOUT
Faire un timeout réutilisable...

{PHP} [PHP5] NOTIMEOUT PACKAGE
Ce package est une version...heu...packagée :-) de mes astuces pour éviter le time limit de PHP. En...

{PHP} GENERER UN VOLUME IMPORTANT DE DONNEES SANS SE HEURTER AU TIMEOUT PHP
Ceci est une petite astuce sur laquelle je travaille en ce moment. Ce n'est pas parfait, mais ça fo...

{PHP} PROGRESS BAR : CLASSE PHP4
Cette classe est basée directement sur le code de "frop01" qui se trouve ici: http://www.phpcs.com/...

{ASP / ASP.NET} ASP.NET - SAUVEGARDER UNE IMAGE À PARTIR D'UNE URL
Dans certain cas, on peut vouloir sauvegarder une image à partir de l'URL permettant de l'avoir sur ...

{C# / C#.NET} RÉCUPÉRER LE CONTENU D'UNE PAGE WEB
Voici un extrait d'un webservice que j'ai réalisé il y a peu de temps. Cette fonction renvoi un stri...