TÉLÉCHARGER UN FICHIER SUR INTERNET TRES SIMPLEMENT EN VB.NET
cs_Nox
Messages postés415Date d'inscriptionmardi 3 avril 2001StatutMembreDernière intervention26 avril 2008
-
12 févr. 2003 à 03:43
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010
-
22 juin 2008 à 20:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 22 juin 2008 à 20:00
exacte backgroundworker_dowork, c'est ça principale utilité , de plus entre temps, j'avais découvert la classe network dans l'espace de nom "My.Computer" qui a déja une fonction de télécharchement.
@++ et bonne prog
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 22 juin 2008 à 18:31
lol... c'est à toi de le placer dans un thread pour ne pas "geler" ton main thread
sousoulebarbu
Messages postés101Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention11 janvier 2009 25 juin 2006 à 21:19
En utilisant cette fonction, tu arrive à retomber sur
"Aucune émission ne correspond à votre recherche..."?????
C'est bizard que j'y arrive pas.
Pour les personnes qui ont ce problème, j'utilise maintenant la fonction:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Integer, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Integer, _
ByVal lpfnCB As Integer) As Integer
A utiliser comme ça: URLDownloadToFile(0,url, filename, 0, 0)
et tout fonctionne parfaitement
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 25 juin 2006 à 16:16
ben en faite je tombe sur :
Résultats
Aucune émission ne correspond à votre recherche...
Retour
Mais cependant fait attention au histoire de formatage de l'url, avec ou sans guillemet, quote ou encore les ~ ou %20% qui remplace des trucs comme les espaces ou autres caractéres
sinon je ne vois pas
sousoulebarbu
Messages postés101Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention11 janvier 2009 23 juin 2006 à 21:56
Je sais, je suis pas un newbie non plus...
Quand j'ouvre le fichier téléchargé avec notepad, j'obtiens un code source totallement différent de celui de la page lorsque je l'ouvre avec ie ou ff.
Essaye toi même, tu verra!
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 23 juin 2006 à 20:05
ce n'est pas une fonction de navigateur internet qui interprete et affiche du code (html,asp,php ...) mais qui recupere un fichier d'un serveur vers un ordi.
En clair l'affichage de la page web depand du navigateur essaye le meme lien que tu donne avec ie et firefox tu verra des differences
sousoulebarbu
Messages postés101Date d'inscriptionmercredi 27 juillet 2005StatutMembreDernière intervention11 janvier 2009 23 juin 2006 à 15:27
GuilleW
Messages postés118Date d'inscriptionvendredi 18 avril 2003StatutMembreDernière intervention28 décembre 2006 4 juin 2006 à 00:30
Bonjour, pour VB.net vous pouvez même l'avoir gratuit en version étudiante disponible également sur le site microsoft, après je sais plus ou ...
Sinon un Grand merci < hvb > ta petite source était juste ce qu'il me fallait. Je vais pouvoir créer mon autoupdater plus simplement que prévue ^^
Merki!
aporler
Messages postés55Date d'inscriptionsamedi 19 octobre 2002StatutMembreDernière intervention 6 août 2009 15 févr. 2006 à 17:32
betapoil
Messages postés8Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention10 février 2005 11 févr. 2006 à 20:24
Nota, j'ai fait de mon mieux pour la lisibilité ...
et pour faire du vrai VB.Net, il faut remplacer les "msgbox" par "messagebox.show" (j'en ai ouvblié qq uns)
betapoil
Messages postés8Date d'inscriptionsamedi 12 avril 2003StatutMembreDernière intervention10 février 2005 11 févr. 2006 à 20:23
Bon code, trés sympa, j'ai repris celui de Surfzoid en ajoutant des controles d'erreurs importants :
Dim reponse
Dim telecharge
Dim LinesFromFile, NextLine As String, FileNum As Integer, Erreur as boolean = False
If Not (Directory.Exists("cache")) Then mkdir("cache")
If Not (File.Exists("version.txt")) Then Genere_Fichier_Version("version.txt")
Lblwaiting.Visible = True
try
If Dir("cache") <> "" Then Kill("cache\*.*") Catch e As Exception
msgbox (e.ToString )
end try
If (download_file(serveurname & "/version.txt", cache\version.txt")<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier version.txt")
Erreur = True
GoTo fintransfert
End If
FileOpen(1, "cache\version.txt", OpenMode.Input) ' Open file.
FileOpen(2, "version.txt", OpenMode.Input) ' Open file.
reponse = MsgBox("La version " & LineInput(1) & " est dispo sur le seveur, vous utilisez la version " & LineInput(2) & " voulez vous faire une mise à jours ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
If (download_file(serveurname & "/liste.txt", "cache\liste.txt")<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier liste.txt")
Erreur = True
GoTo fintransfert
End If
FileClose(1)
FileOpen(1, "cache\liste.txt", OpenMode.Input) ' Open file.
logage.Visible = True
Do Until EOF(1)
NextLine = LineInput(1)
System.Windows.Forms.Application.DoEvents()
logage.Text = "Téléchargement en cours du fichier : " & NextLine
'LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10)
System.Windows.Forms.Application.DoEvents()
If (download_file(serveurname & NextLine, "cache" & NextLine)<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier " & NextLine & "Mise à jour échouée.")
Erreur = True
GoTo fintransfert
End If
'telecharge = LinesFromFile
System.Windows.Forms.Application.DoEvents()
Loop
Else
GoTo fintransfert
End If
reponse = MsgBox("Le téléchargement des fichiers est terminé, pour faire la mise à jour le logiciel vas être fermé, continuer ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
If (File.Exists("cache\maj.cmd")) Then
Shell("cache\maj.cmd", AppWinStyle.NormalFocus)
End
Else
messagebox.Show ("Erreur : fichier maj.cmd introuvable !" & vbcrlf & vbcrlf & "Mise à jour échouée.")
End If
Else
MsgBox("Pour proceder à une mise à jours ultérieure vous pouvez utiliser le fichier update.cmd qui se trouve dans le repertoire \cache\ de l application")
End If
fintransfert:
FileClose(1)
FileClose(2)
logage.Visible = False
Lblwaiting.Visible = False
Me.Close
If not Erreur then SaveSetting(System.Reflection.Assembly.GetExecutingAssembly.GetName.Name, "options", "lastupdate", Today.DayOfYear)
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 25 sept. 2005 à 20:15
pas terrible le formatage des message le code est carrement illisible dsl
sinon je n est pas testé mais ta fonction devrai marchée avec aussi du ftp genre
ftp://user:pass@adresse_ftp_du_file
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 25 sept. 2005 à 20:13
Exacte et je viens de le finir, vraiment exelente ta function download
pour ceux que ca interesse voici le code que j ai rajouter pour liste qui me permet de maintenir mon soft a jour via http
Dim reponse
Dim telecharge
Dim LinesFromFile, NextLine As String, FileNum As Integer
Lblwaiting.Visible = True
If Dir("cache") <> "" Then Kill("cache\*.*")
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/liste.txt", "cache\liste.txt")
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/version.txt", "cache\version.txt")
FileOpen(1, "cache\version.txt", OpenMode.Input) ' Open file.
FileOpen(2, "version.txt", OpenMode.Input) ' Open file.
reponse = MsgBox("La version " & LineInput(1) & " est dispo sur le seveur, vous utilisez la version " & LineInput(2) & " voulez vous faire une mise à jours ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
FileClose(1)
FileOpen(1, "cache\liste.txt", OpenMode.Input) ' Open file.
logage.Visible = True
Do Until EOF(1)
NextLine = LineInput(1)
System.Windows.Forms.Application.DoEvents()
logage.Text = "Téléchargement en cours du fichier : " & NextLine
'LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10)
System.Windows.Forms.Application.DoEvents()
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/" & NextLine, "cache" & NextLine)
'telecharge = LinesFromFile
System.Windows.Forms.Application.DoEvents()
Loop
Else
GoTo fintransfert
End If
reponse = MsgBox("Le téléchargement des fichiers est terminé,faire la mise à jours(Le logiciel vas être fermé)", MsgBoxStyle.YesNo)
If reponse = vbYes Then
Shell("cache\update.cmd", AppWinStyle.NormalFocus)
End
Else
MsgBox("Pour proceder à une mise à jours ultérieure vous pouvez utiliser le fichier update.cmd qui se trouve dans le repertoire \cache\ de l application")
End If
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 25 sept. 2005 à 16:51
bah oui, mais c'est à toi de le coder...
tu recupere la pages qui liste tes liens, tu formattes tes données, et tu fais une boucle... non? peut être que je comprend pas ce que tu veux.
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 25 sept. 2005 à 16:22
marche impacable
mais est il possible de definir une liste de fichier a partir d un rep http puis de telecharge la dite liste ?
10/10
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 14 févr. 2005 à 15:50
bon le code n'est pô semblabe mai ca fai la même chose koi lolllllllllll
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 14 févr. 2005 à 12:21
"Ca donne quoi en VB6 ?"
un long code ecris par toi meme...
passer de vb6 à vb.net c'est tout simple, le contraire n'est pas toujours evident, voir parfois impossible.
Et winsock n'est pas du tout semblable au System.Net.WebClient
ludovicanceaux
Messages postés440Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention 6 mai 2010 13 févr. 2005 à 15:50
en vb6 ce composant n'existe pô mai il y en a un similaire (Winsock)
gedsismik
Messages postés2Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 8 septembre 2003 8 sept. 2003 à 22:45
Ca donne quoi en VB6 ?
Noiretulipe
Messages postés164Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention13 juillet 2008 13 févr. 2003 à 21:30
chez le marchand lollll ... Ct nul, ok ..... ne referais plus ....
cs_utopia
Messages postés26Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention17 août 2009 13 févr. 2003 à 20:41
On peu je peut trouver Visual Basic.net ?
Merci a vous
cs_Nox
Messages postés415Date d'inscriptionmardi 3 avril 2001StatutMembreDernière intervention26 avril 2008 13 févr. 2003 à 04:04
ouais
me su encore fait avoir ak les sources vb.net jpensait stai tu vb simple :p
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 12 févr. 2003 à 12:49
mais... c t pas du vb6 ton projet? (c celui dont tu as mis la src nan?)
cs_Nox
Messages postés415Date d'inscriptionmardi 3 avril 2001StatutMembreDernière intervention26 avril 2008 12 févr. 2003 à 03:43
goood!
parfait pour mon problème de "gel" de mon exemple pour prendre une partie d'un code html
9/10
22 juin 2008 à 20:00
@++ et bonne prog
22 juin 2008 à 18:31
regarde ça sinon :
http://www.vbfrance.com/codes/NET2-CLASSE-TELECHARGEMENT-HTTP-AVEC-GESTION-RESUME-PROGRESSION_41850.aspx
22 juin 2008 à 16:12
25 juin 2006 à 23:02
pour faire simple et court :
fais une requete GET et enregistre le resultat ou tu veux.
http://www.vbfrance.com/codes/REQUETE-HTTP-GET-POST_36181.aspx
25 juin 2006 à 21:19
"Aucune émission ne correspond à votre recherche..."?????
C'est bizard que j'y arrive pas.
Pour les personnes qui ont ce problème, j'utilise maintenant la fonction:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Integer, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Integer, _
ByVal lpfnCB As Integer) As Integer
A utiliser comme ça: URLDownloadToFile(0,url, filename, 0, 0)
et tout fonctionne parfaitement
25 juin 2006 à 16:16
Résultats
Aucune émission ne correspond à votre recherche...
Retour
Mais cependant fait attention au histoire de formatage de l'url, avec ou sans guillemet, quote ou encore les ~ ou %20% qui remplace des trucs comme les espaces ou autres caractéres
sinon je ne vois pas
23 juin 2006 à 21:56
Quand j'ouvre le fichier téléchargé avec notepad, j'obtiens un code source totallement différent de celui de la page lorsque je l'ouvre avec ie ou ff.
Essaye toi même, tu verra!
23 juin 2006 à 20:05
En clair l'affichage de la page web depand du navigateur essaye le meme lien que tu donne avec ie et firefox tu verra des differences
23 juin 2006 à 15:27
J'ai essayé d'utiliser cette fonction avec
"http://pelerin.lesagencestv.com/php/recherche_resultat/recherche_resultat.php?f_type_recherche=simple&f_jour=28-6-2006&f_chaine=4&f_debut_emission=0"
mais je n'obtiens pas la même page que lorsque j'ouvre l'url dans mon navigateur. Quelqu'un saurait-il expliquer ce problème?
4 juin 2006 à 00:30
Sinon un Grand merci < hvb > ta petite source était juste ce qu'il me fallait. Je vais pouvoir créer mon autoupdater plus simplement que prévue ^^
Merki!
15 févr. 2006 à 17:32
Ce rendre à http://msdn.microsoft.com/vstudio/express/vb/download/
Version d'essais de 30 Jours.
11 févr. 2006 à 20:24
et pour faire du vrai VB.Net, il faut remplacer les "msgbox" par "messagebox.show" (j'en ai ouvblié qq uns)
11 févr. 2006 à 20:23
Dim reponse
Dim telecharge
Dim LinesFromFile, NextLine As String, FileNum As Integer, Erreur as boolean = False
If Not (Directory.Exists("cache")) Then mkdir("cache")
If Not (File.Exists("version.txt")) Then Genere_Fichier_Version("version.txt")
Lblwaiting.Visible = True
try
If Dir("cache") <> "" Then Kill("cache\*.*") Catch e As Exception
msgbox (e.ToString )
end try
If (download_file(serveurname & "/version.txt", cache\version.txt")<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier version.txt")
Erreur = True
GoTo fintransfert
End If
FileOpen(1, "cache\version.txt", OpenMode.Input) ' Open file.
FileOpen(2, "version.txt", OpenMode.Input) ' Open file.
reponse = MsgBox("La version " & LineInput(1) & " est dispo sur le seveur, vous utilisez la version " & LineInput(2) & " voulez vous faire une mise à jours ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
If (download_file(serveurname & "/liste.txt", "cache\liste.txt")<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier liste.txt")
Erreur = True
GoTo fintransfert
End If
FileClose(1)
FileOpen(1, "cache\liste.txt", OpenMode.Input) ' Open file.
logage.Visible = True
Do Until EOF(1)
NextLine = LineInput(1)
System.Windows.Forms.Application.DoEvents()
logage.Text = "Téléchargement en cours du fichier : " & NextLine
'LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10)
System.Windows.Forms.Application.DoEvents()
If (download_file(serveurname & NextLine, "cache" & NextLine)<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier " & NextLine & "Mise à jour échouée.")
Erreur = True
GoTo fintransfert
End If
'telecharge = LinesFromFile
System.Windows.Forms.Application.DoEvents()
Loop
Else
GoTo fintransfert
End If
reponse = MsgBox("Le téléchargement des fichiers est terminé, pour faire la mise à jour le logiciel vas être fermé, continuer ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
If (File.Exists("cache\maj.cmd")) Then
Shell("cache\maj.cmd", AppWinStyle.NormalFocus)
End
Else
messagebox.Show ("Erreur : fichier maj.cmd introuvable !" & vbcrlf & vbcrlf & "Mise à jour échouée.")
End If
Else
MsgBox("Pour proceder à une mise à jours ultérieure vous pouvez utiliser le fichier update.cmd qui se trouve dans le repertoire \cache\ de l application")
End If
fintransfert:
FileClose(1)
FileClose(2)
logage.Visible = False
Lblwaiting.Visible = False
Me.Close
If not Erreur then SaveSetting(System.Reflection.Assembly.GetExecutingAssembly.GetName.Name, "options", "lastupdate", Today.DayOfYear)
25 sept. 2005 à 20:15
sinon je n est pas testé mais ta fonction devrai marchée avec aussi du ftp genre
ftp://user:pass@adresse_ftp_du_file
25 sept. 2005 à 20:13
pour ceux que ca interesse voici le code que j ai rajouter pour liste qui me permet de maintenir mon soft a jour via http
Dim reponse
Dim telecharge
Dim LinesFromFile, NextLine As String, FileNum As Integer
Lblwaiting.Visible = True
If Dir("cache") <> "" Then Kill("cache\*.*")
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/liste.txt", "cache\liste.txt")
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/version.txt", "cache\version.txt")
FileOpen(1, "cache\version.txt", OpenMode.Input) ' Open file.
FileOpen(2, "version.txt", OpenMode.Input) ' Open file.
reponse = MsgBox("La version " & LineInput(1) & " est dispo sur le seveur, vous utilisez la version " & LineInput(2) & " voulez vous faire une mise à jours ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
FileClose(1)
FileOpen(1, "cache\liste.txt", OpenMode.Input) ' Open file.
logage.Visible = True
Do Until EOF(1)
NextLine = LineInput(1)
System.Windows.Forms.Application.DoEvents()
logage.Text = "Téléchargement en cours du fichier : " & NextLine
'LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10)
System.Windows.Forms.Application.DoEvents()
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/" & NextLine, "cache" & NextLine)
'telecharge = LinesFromFile
System.Windows.Forms.Application.DoEvents()
Loop
Else
GoTo fintransfert
End If
reponse = MsgBox("Le téléchargement des fichiers est terminé,faire la mise à jours(Le logiciel vas être fermé)", MsgBoxStyle.YesNo)
If reponse = vbYes Then
Shell("cache\update.cmd", AppWinStyle.NormalFocus)
End
Else
MsgBox("Pour proceder à une mise à jours ultérieure vous pouvez utiliser le fichier update.cmd qui se trouve dans le repertoire \cache\ de l application")
End If
fintransfert:
FileClose(1)
FileClose(2)
logage.Visible = False
Lblwaiting.Visible = False
SaveSetting(System.Reflection.Assembly.GetExecutingAssembly.GetName.Name, "options", "lastupdate", Today.DayOfYear)
25 sept. 2005 à 16:51
tu recupere la pages qui liste tes liens, tu formattes tes données, et tu fais une boucle... non? peut être que je comprend pas ce que tu veux.
25 sept. 2005 à 16:22
mais est il possible de definir une liste de fichier a partir d un rep http puis de telecharge la dite liste ?
10/10
14 févr. 2005 à 15:50
14 févr. 2005 à 12:21
un long code ecris par toi meme...
passer de vb6 à vb.net c'est tout simple, le contraire n'est pas toujours evident, voir parfois impossible.
Et winsock n'est pas du tout semblable au System.Net.WebClient
13 févr. 2005 à 15:50
8 sept. 2003 à 22:45
13 févr. 2003 à 21:30
13 févr. 2003 à 20:41
Merci a vous
13 févr. 2003 à 04:04
me su encore fait avoir ak les sources vb.net jpensait stai tu vb simple :p
12 févr. 2003 à 12:49
12 févr. 2003 à 03:43
parfait pour mon problème de "gel" de mon exemple pour prendre une partie d'un code html
9/10