begin process at 2012 02 14 08:01:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > TÉLÉCHARGER UN FICHIER À PARTIR D'UNE URL HTTP

TÉLÉCHARGER UN FICHIER À PARTIR D'UNE URL HTTP


 Information sur la source

Note :
8,6 / 10 - par 10 personnes
8,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :telecharger, internet, site, url, image Niveau :Débutant Date de création :04/01/2006 Date de mise à jour :04/01/2006 17:08:38 Vu :32 748

Auteur : bobjay

Ecrire un message privé
Commentaire sur cette source (33)
Ajouter un commentaire et/ou une note

 Description

Ce code est une api trouvée sur le Net (donc je n'en sui pas l'auteur, j'ai juste fait l'exemple). Trouvant cette fonction simple et utile et ne l'ayant pas vu sur Vbfrance, je me permet de l'ajouter ici.
Fonction qui permet de télécharger un fichier hébergé sur un site, afin de pouvoir l'exploiter dans son application vb.

Dans cet exemple illustrant la syntaxe de cette api, j'utilise la fonction pour récupérer une image d'un site internet afin de l'afficher dans un picturebox de mon projet vb.

Source

  • 'API de telechargement - A mettre dans les déclarations de var
  • Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
  • "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
  • ByVal szFileName As String, ByVal dwReserved As Long, _
  • ByVal lpfnCB As Long) As Long
  • 'A mettre dans votre Form:
  • Dim errcode As Long
  • Dim url As String
  • Dim localFileName As String
  • 'On spécifie le chemin de l'image web
  • url = "http://www.siteweb.com/image.jpg"
  • 'On spécifie le chemin ou l'on veut enregistrer ce fichier
  • '(vb.app.path donne le chemin du dossier de l'appli vb)
  • localFileName = VB.App.Path & "\image.jpg"
  • 'On appelle la fonction api de téléchargement
  • errcode = URLDownloadToFile(0, url, localFileName, 0, 0)
  • If errcode = 0 Then
  • 'Message de confirmation que l'image a bien été téléchargée
  • 'MsgBox "Fichier bien reçu"
  • 'Comme on a bien reçu l'image on peut la charger
  • picture1 = VB.LoadPicture(localFileName)
  • Else
  • 'Sinon on affiche le message d'erreur
  • 'MsgBox "Erreur durant le téléchargement"
  • End If
'API de telechargement - A mettre dans les déclarations de var
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
    "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
    ByVal szFileName As String, ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) As Long


'A mettre dans votre Form:

Dim errcode As Long
Dim url As String
Dim localFileName As String

'On spécifie le chemin de l'image web
url = "http://www.siteweb.com/image.jpg"
'On spécifie le chemin ou l'on veut enregistrer ce fichier
'(vb.app.path donne le chemin du dossier de l'appli vb)
localFileName = VB.App.Path & "\image.jpg"

'On appelle la fonction api de téléchargement
errcode = URLDownloadToFile(0, url, localFileName, 0, 0)

If errcode = 0 Then

'Message de confirmation que l'image a bien été téléchargée
    'MsgBox "Fichier bien reçu"
    'Comme on a bien reçu l'image on peut la charger
    picture1 = VB.LoadPicture(localFileName)

Else

'Sinon on affiche le message d'erreur
    'MsgBox "Erreur durant le téléchargement"

End If



 Historique

04 janvier 2006 17:08:39 :
Petite erreur de frappe rectifiée

 Sources du même auteur

VB6 - FONCTION QUI BLOQUE LE BUREAU
RÉCUPÉRER SON ADRESSE IP INTERNET (VERSION SIMPLE ET QUI FON...

 Sources de la même categorie

Source avec Zip Source avec une capture GESTIONNAIRE DE TÉLÉCHARGEMENT, AVEC REPRISE ET MULTITHREADI... par Madx23
Source avec Zip Source avec une capture CONVERTIR DU TEXTE RTF EN CODE HTML ET VICE-VERSA par vicosta
Source avec Zip Source avec une capture DICTIONAIRE TEXT/AUDIO/VISUELLE ANGLAIS AVEC WEBBROWSER CONT... par majnounmajda
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI... par ShareVB
Source avec Zip Source avec une capture MINI SEVEUR HTTP AVEC INTERFACE GRAPHIQUE ET IMPLÉMENTATIONS... par lemout

 Sources en rapport avec celle ci

Source avec Zip TÉLÉCHARGEMENT POUR MISE À JOUR ET VOIR LA PROGRESSION par Galactus13
Source avec Zip Source avec une capture Source .NET (Dotnet) FAVORIS URL par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) ASPIRATEUR WEB (TELECHARGER UN SITE WEB :) ) par Vb6Malade
Source avec Zip Source avec une capture Source .NET (Dotnet) DRAG AND DROP IMAGE INTERNET par alosamoelle
Source avec Zip Source avec une capture GÉNÉRATEUR DE LIENS URL EN BBCODE ET EN HTML D'IMAGES ET DE ... par Frank9321

Commentaires et avis

Commentaire de ghuysmans99 le 04/01/2006 18:54:15

Bravo

Commentaire de econs le 04/01/2006 19:54:05 administrateur CS

Il faut rappeler que la présence de la DLL urlmon.dll sur le disque est nécessaire. Mais apparemment, elle est fournie avec Windows, donc çà va.

Commentaire de zeboss31 le 04/01/2006 21:00:51

J'arrive pas à le faire marcher ce code!! On peut m'expliquer comment faire??

Commentaire de Renfield le 05/01/2006 00:44:35 administrateur CS

http://msdn.microsoft.com/workshop/networking/moniker/reference/functions/urldownloadtofile.asp

Minimum availability Internet Explorer 3.0
Minimum operating systems Windows NT 4.0, Windows 95

Commentaire de thieryandco le 05/01/2006 06:41:04

Super, franchement bravo !
Avant, j'était obligé de rediriger les visiteurs sur mon site mais maintenant, direct téléchargement ses passer par la casse Internet Explorer ! lol
Sinon, ya un bug si on programme le code sous Linux. Il doit manquer un certain fichier j'crois.

Commentaire de Patrice99 le 05/01/2006 08:36:16

> ya un bug si on programme le code sous Linux

Quand on parle des API sur VBFrance, il s'agit des API Windows, jamais Linux !!! (sauf Mono en .Net mais c'est encore très restrictif)

Commentaire de Renfield le 05/01/2006 08:38:03 administrateur CS

VB6 sous Linux, j'ai loupé qq chose, là ^^

Commentaire de ScSami le 05/01/2006 09:49:40

Gambas m'enfin voyons Renfield !!!

Commentaire de thieryandco le 05/01/2006 09:59:47

Désolé, je voulais dire, si on utilise les mêmes principes du code quand on programme sous Linux, car quelques codes de Windows et Linux se ressembles (ex: recherche de fichiers dans l'explorateur)

Commentaire de greedium le 05/01/2006 18:10:52

Et bien moi qui allais poster une question pour savoir comment télécharger un fichier sur Internet directement par VB ... je suis servi !
Cool, je vais aller tester ça rapidement !

PS: Est-ce que cela gère les Proxy ??

Commentaire de e_NeX le 08/01/2006 21:17:02

Oui, ca serait bein de savoir ci cette API gère les proxy... perso je pense que oui mais ca reste à vérifier...

Commentaire de Renfield le 09/01/2006 09:53:57 administrateur CS

je ne pense pas, au contraire...
certaines API (iNet, par exemple) intègrent des parametres permettant de rentrer des parametres pour le Proxy

Commentaire de bobjay le 15/01/2006 23:01:21

Je suis heureux de voir que cette petite source s'avère un peu utile, et dire que j'ai hésité avant de la poster...
Pour les questions au niveau des capacités de l'api, je suis au regret de pas pouvoir vous répondre car je débute dans le domaine de l'exploitation de celles-ci. Je peux juste vous spécifier que cette api fonctionne très bien à travers un routeur physique, sous windows xp pro, et que j'ai réalisé cet exemple sous VB6.

@++

Commentaire de B4loo le 14/03/2006 13:02:43

Slt, j utilise actuelement la mm api pour telecharger des fichier texte sur un serveur distant.

ex : URLDownloadToFile(0, "url", App.Path & "/fichier.txt", 0, 0)

Le seul pb que j 'ai c'est que si j upload un nouveau fichier texte sur le serveur distant, tant que je n ai pas "reactualiser" ce fichier via IE, l Api ne telecherge pas le nouveau, comme si il telechargeai le fichier a travers le cache de IE ...

Aurai tu rencontré le mm probleme ?
Si oui , as tu une solution ?

merci d avance

Commentaire de db30 le 01/04/2006 19:51:53

Mon gars je te "baiserais" les pieds pour ces quelques lignes de code.
Je suis sûrement nul de ne pas avoir trouvé ton code plus tôt ça fait 3 jours que je "m'esquinte".

Je te remercie mille fois, toi pour ce code; DeAtHCrAsH pour m'avoir mis sur la voie de URLDownloadToFile(), et VinceExtense pour sa question du 05/08/2004 14:17:51 qui est en fait à l'origine de la découverte de ton source.

Merci.

PS:
Sans vouloir abuser du context, est-ce que tu sais où je peux touver une instruction equivalente à l'extraction (décompression) de fichier de XP?
ex: Decomp c:\monFic.zip c:\MonFicDecomp.xls
NB:En vb ou dans une ligne de commande que je pourrais intégrer dans un module vb.

Damien

Commentaire de racattac13 le 09/05/2006 13:50:33

Salut

pour B4loo
essaie de mettre ca
ex : URLDownloadToFile(0, "url", App.Path & "/fichier.txt", &H10, 0)

suite  cette explication :
'Download the file. BINDF_GETNEWESTVERSION forces
  'the API to download from the specified source.
  'Passing 0& as dwReserved causes the locally-cached
  'copy to be downloaded, if available. If the API
  'returns ERROR_SUCCESS (0), DownloadFile returns True.

et BINDF_GETNEWESTVERSION = &H10


sinon moi je cherche a rendre cette fonction non bloquante pour le reste de l'application , je m'explique pendant que je telecharge un mp3 ( ca dure une trentaine de seconde en wifi ) , le reste de l'appli et bloqué ... ni telechargé une aute ou meme fermé l'appli , obligé d'attendre
Merci et a plus

Commentaire de Renfield le 09/05/2006 14:30:28 administrateur CS

tu peux utiliser (un composant) Inet....

Commentaire de racattac13 le 10/05/2006 12:58:02

Salut
merci , j'allais m'y mettre de toute facon a wininet.dll, meme si c'est plus lourd a mettre en oeuvre ...
a Plus et merci

Commentaire de alosamoelle le 19/05/2006 19:41:49

Merci c'est exactement ce que je cherchai

Commentaire de sylvanox le 25/05/2006 16:49:56

Merci elle est parfaite ta source ! marche très bien, pile ce que je voulais !

:D

Commentaire de bellage le 20/07/2006 13:55:26

merci pour ce code !au début il y a des pbs mais tous est résolu

Commentaire de diablamanshadow le 05/09/2006 01:50:06

moi il va tres bien mais quand j'integre ton prog dans une form deja surchargee de code bah si le fichier est gros a telecharger sa fige l'api et fais ne repond pas :-/
je dois utiliser une new frm juste pour ca pour les gros fichier pour pas que ca plante ou une soluce ou quoi ? svp ^^

Commentaire de Renfield le 05/09/2006 08:10:01 administrateur CS

winsock, Inet, y'a pluseurs solutions qui te permettraient de ne pas figer l'appli

Commentaire de BoRom le 13/11/2006 18:00:59

Salut,

Il y a un exemple utilisant une barre de progression, et expliquant comment effacer le fichier du cache (pour le "bug" mentionné, lorsque l'on télécharge un nouvelle fois le fichier) à cette adresse :

http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=64914&lngWId=1

Mais il faut utiliser la librairie tl_ole...

Quelqu'un sait-il comment gérer directement la fonction "IBindStatusCallback" ?

Merci

Commentaire de rocker le 27/01/2007 19:22:07

Vraiment bien ce code! Peut etre tres utile pour les dll et ocx manquants !

Commentaire de nicoine le 22/11/2007 17:34:59

C'est exactement ce que je cherchais!

Mais il j'aimerais améliorer cette fonction choisissant de télécharger un dossier complet ou mieux télécharger tous les fichier d'un dossier avec une extension donnée.

Si quelqu'un a une idée.

Merci d'avance

Commentaire de hippo92210b le 26/03/2008 22:14:28 10/10

Bravo il y a un système de mise a jour de programme mais pour le téléchargement on passait par internet explorer mais maintenant ... grâce a toi mon système est beaucoup mieux !!!

BRAVOS

(10/10)

Commentaire de badr07 le 30/03/2008 16:40:38

Bonjour, le programme est compatible sur vista ?

Commentaire de Renfield le 30/03/2008 17:38:21 administrateur CS

le temps d'aller sur la page de doc consacrée a cette fonction:
http://msdn2.microsoft.com/en-us/library/ms775123(VS.85).aspx

on voit:
Minimum availability Internet Explorer 3.0
Minimum operating systems Windows NT 4.0, Windows 95


donc a priori, ok pour vista

Commentaire de poullin le 20/02/2009 12:38:30

Bonjour,
J'utilise cette fonction dans un programme Vb6.
Aucun problème avec Windows 2000 pro, Xp familiale, Xp Pro, Vista familiale.

Un cas de non fonctionnement avec Vista version Pro.
Quelqu'un connaîtrait-il la raison ou aurait-il rencontré ce problème?

Merci d'avance.
poullin

Commentaire de Patrice99 le 20/02/2009 12:58:44

Tu as essayé de lancer ton appli en tant qu'admin ?

Commentaire de Renfield le 20/02/2009 13:56:13 administrateur CS

TOUJOURS lancer VB6.exe en mode administrateur

Commentaire de poullin le 20/02/2009 14:11:06

J'ai adapté mon fichier exécutable en y associant un fichier "manifest" qui courcircuite les demandes de vista. Le fichier se lance par double click comme sous XP ou 2000 Pro. J'ai utilisé des infos trouvées sur un forum de développeurs.
Le problème est peut être que le téléchargement d'un fichier par URLDownLoadToFile est "filtré" par Vista Pro et interdit ce chargement.
Je n'ai pas la possibilité de tester dans l'immédiat, ne possédant pas vista.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Telecharger une image d'un site ??? [ par yreveill ] Salut,avec Inet, je reussi a recuperer ce ke m'envoi un serveur lorsque je demande une page....MAis quand je demande une image gif, comment la recuper telecharger fichier internet [ par rip69du78 ] bonjour,je cherche une commande pour visual basic pour telecharger une image avec un url précis.j'aurai besoin de cela pour faire un petit programme q Comment telecharger un image d'un site simplement?? [ par Heriver ] J'aimerais savoir comment on peut telecharger une image sur n'importe quel site de la maniere la plus simple.... Merci d'avance!!! Heriver Comment telecharger une image de n'import quel site? (en visual basic) [ par Heriver ] Comment telecharger une image de n'import quel site? (en visual basic) Repondez moi s'il vous plai  Meric Heriver Inserer image site internet [ par radione ] Bonjour, Je cherche à inserer automatiquement et quotidiennement (clique sur un bouton) l'image actualisée de Vigilance météo (http://www.meteo.fr/met récuperer des valeurs sur un site internet [ par malo777 ] Bonsoir, j'aimerais récupérer une info sur cette page internet [url=http://www.boursereflex.com/bourse/Pieces-Or_20-francs-Napoleon/cotation/]LIEN[/u image a partir url [ par soulofvampire ] inserer une image dans picturebox a partir d'un url vb2008 merci a ts Afficher une image située sur un site Web | VB6 | [ par jminter ] Bonjour a tous ! Voila comme le titre l'explique je voudrais savoir si avec un Picturebox/Image ou un autre contrôle il est possible d'afficher une im Listview + site internet [ par atrocity ] Bonjour à vous, Je voudrais savoir comment récupérer des informations sur un site internet sachant que je n'ai pas accès à la base de données et les i [BAR]Internet Explorer ?! [ par Mayzz ] Salut à tous, Voila il est 1h du mat et je suis toujours sur un de mes sites web que je tente d'améliorer. De ce coté la pas de soucis ^^ Je dével


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales