Telecharger un fichier sans ocx

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 882 fois - Téléchargée 57 fois

Contenu du snippet

Et voilà comment télécharger un fichier sans utiliser d'OCX.
Copiez ça dans un module.

Source / Exemple :


' ...............................................
' ..:     Télécharger un fichier sans OCX     :..
' ..:      E-mail : raptor@mailfrance.com     :..
' ..:          URL : www.raptor.fr.fm         :..
' ...............................................

Option Explicit

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const scUserAgent = "VB OpenUrl"
Public Const INTERNET_FLAG_RELOAD = &H80000000

Sub Download(URL As String, SaveAs As String)

    Dim hOpen               As Long
    Dim hOpenUrl            As Long
    Dim bDoLoop             As Boolean
    Dim bRet                As Boolean
    Dim sReadBuffer         As String * 2048
    Dim lNumberOfBytesRead  As Long
    Dim sBuffer             As String

    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
    hOpenUrl = InternetOpenUrl(hOpen, URL, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)

    bDoLoop = True
    While bDoLoop
        sReadBuffer = vbNullString
        bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
        sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
        If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
    Wend
    
    Open SaveAs For Binary Access Write As #1
    Put #1, , sBuffer
    Close #1
    
    If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
    If hOpen <> 0 Then InternetCloseHandle (hOpen)

End Sub

Conclusion :


Exemple : Call Download("http://www.url.com/fichier.zip", "C:\Fichier.zip")

A voir également

Ajouter un commentaire

Commentaires

Messages postés
97
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
7 mars 2011

Tré Bon Code //
Mes MON ANTIVIRUS LE DECTECT COMME DANGEREUX :(
Messages postés
53
Date d'inscription
mercredi 22 février 2006
Statut
Membre
Dernière intervention
15 novembre 2006

Est-ce compatible sur vista ?
Messages postés
6
Date d'inscription
mardi 8 novembre 2005
Statut
Membre
Dernière intervention
16 novembre 2005

Bonne utilisation de la bibliothèque. J'ai trouvé ce code en 5 minutes, et j'ai mis 2 sec à l'utiliser. Bravo!

Quant au proxy, je suis en entreprise, et je peux dire que cela fonctionne. Les paramètres doivent être ceux de Internet Explorer.
Messages postés
20
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
28 février 2010

c exactement ce que je chercher pour creer mon log merki infiniment..(en cado de remerciment des phautes lol)
Messages postés
32
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
24 novembre 2011

Génial !
Merci pour ce code, vraiment très utile !

++
Afficher les 15 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.