Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Télécharger un fichier à partir d'une adresse http ...

6 réponses
Avatar
Denis
Bonsoir à tous !

Je cherche le moyen, en vbscript, de télécharger un fichier à partir d'un
emplacement internet.
J'ai bien trouvé ce bout de code VB qui correspond tout à fait à mon besoin,
mais je suis incapable de l'adapter pour qu'il fonctionne en VBS :

-----------------8<----------------------------8<---------
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

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

url = "http://www.siteweb.com/image.jpg"
localFileName = VB.App.Path & "\image.jpg"

errcode = URLDownloadToFile(0, url, localFileName, 0, 0)
-----------------8<----------------------------8<---------

Si vous auriez 2 minutes pour me filer un coup de main ou m'orienter, ce
serait cool !

Denis.

6 réponses

Avatar
Antoine Habert
Hello,

tu peux utiliser le script suivant :

dim ie
tonUrl = "Ton URL ICI"
taDestination = "chemin de destination

set ie.createobject("internetexplorer.application")
ie.visibleúlse
ie.navigate2(tonUrl)
ie.document.execwb("saveas",false,TaDestination)
ie.quit
--
Envie de scripting ? Lisez donc "Scripting Windows" aux Editions Eyrolles !
http://www.eyrolles.com/Informatique/Livre/9782212116922/
http://www.scriptovore.com



Bonsoir à tous !

Je cherche le moyen, en vbscript, de télécharger un fichier à partir d'un
emplacement internet.
J'ai bien trouvé ce bout de code VB qui correspond tout à fait à mon besoin,
mais je suis incapable de l'adapter pour qu'il fonctionne en VBS :

-----------------8<----------------------------8<---------
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

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

url = "http://www.siteweb.com/image.jpg"
localFileName = VB.App.Path & "image.jpg"

errcode = URLDownloadToFile(0, url, localFileName, 0, 0)
-----------------8<----------------------------8<---------

Si vous auriez 2 minutes pour me filer un coup de main ou m'orienter, ce
serait cool !

Denis.






Avatar
Jean
Je cherche le moyen, en vbscript, de télécharger un fichier à partir d'un
emplacement internet.


Bonjour,

http://automation.eu.tf/Importer_Fichier_Du_Web.VBS (code ci-dessous)

'---8<---Importer_Fichier_Du_Web.VBS---Jean-JMST-Belgium---

'###DEMO###
Importer_Fichier_Du_Web "http://www.microsoft.com","microsoft.htm"
Importer_Fichier_Du_Web "http://technet.microsoft.com/HomePageType/"&_
"Controls/mtps_bannerctrl/en-gb/"&_
"technet.jpg"_
,"technet.jpg"
'###DEMO###

Sub Importer_Fichier_Du_Web(source,destination)
Set HTTP=Objet_XMLHTTP
With HTTP
.Open "GET",source,False
.Send
End With
With CreateObject("ADODB.Stream")
.Type=1
.Open
.Write HTTP.ResponseBody
.SaveToFile destination,2
End With
End Sub

Function Objet_XMLHTTP
On Error Resume Next
Set Objet_XMLHTTP=CreateObject("Microsoft.XMLHTTP")
Set Objet_XMLHTTP=CreateObject("MSXML2.XMLHTTP")
On Error GoTo 0
End Function
'---8<---Importer_Fichier_Du_Web.VBS---Jean-JMST-Belgium---

Amicalement,


--
Jean - JMST
Belgium

Avatar
Denis
Nickel !
c'est pile poil ce qu'il me fallait... dommage que le lien fournit est
quasiment vide, je suis sur qu'il y a plein de trucs sympa ;-)

Merci !
DNI.




"Jean" a écrit dans le message de news:

Je cherche le moyen, en vbscript, de télécharger un fichier à partir d'un
emplacement internet.


Bonjour,

http://automation.eu.tf/Importer_Fichier_Du_Web.VBS (code ci-dessous)

'---8<---Importer_Fichier_Du_Web.VBS---Jean-JMST-Belgium---

'###DEMO###
Importer_Fichier_Du_Web "http://www.microsoft.com","microsoft.htm"
Importer_Fichier_Du_Web "http://technet.microsoft.com/HomePageType/"&_
"Controls/mtps_bannerctrl/en-gb/"&_
"technet.jpg"_
,"technet.jpg"
'###DEMO###

Sub Importer_Fichier_Du_Web(source,destination)
Set HTTP=Objet_XMLHTTP
With HTTP
.Open "GET",source,False
.Send
End With
With CreateObject("ADODB.Stream")
.Type=1
.Open
.Write HTTP.ResponseBody
.SaveToFile destination,2
End With
End Sub

Function Objet_XMLHTTP
On Error Resume Next
Set Objet_XMLHTTP=CreateObject("Microsoft.XMLHTTP")
Set Objet_XMLHTTP=CreateObject("MSXML2.XMLHTTP")
On Error GoTo 0
End Function
'---8<---Importer_Fichier_Du_Web.VBS---Jean-JMST-Belgium---

Amicalement,


--
Jean - JMST
Belgium





Avatar
jbongran
Jean wrote:
Je cherche le moyen, en vbscript, de télécharger un fichier à partir
d'un emplacement internet.


Bonjour,

http://automation.eu.tf/Importer_Fichier_Du_Web.VBS (code ci-dessous)

'---8<---Importer_Fichier_Du_Web.VBS---Jean-JMST-Belgium---

'###DEMO###
Importer_Fichier_Du_Web "http://www.microsoft.com","microsoft.htm"
Importer_Fichier_Du_Web "http://technet.microsoft.com/HomePageType/"&_
"Controls/mtps_bannerctrl/en-gb/"&_
"technet.jpg"_
,"technet.jpg"
'###DEMO###

Sub Importer_Fichier_Du_Web(source,destination)
Set HTTP=Objet_XMLHTTP
With HTTP
.Open "GET",source,False
.Send
End With
With CreateObject("ADODB.Stream")
.Type=1
.Open
.Write HTTP.ResponseBody
.SaveToFile destination,2
End With
End Sub

Function Objet_XMLHTTP
On Error Resume Next
Set Objet_XMLHTTP=CreateObject("Microsoft.XMLHTTP")
Set Objet_XMLHTTP=CreateObject("MSXML2.XMLHTTP")
On Error GoTo 0
End Function
'---8<---Importer_Fichier_Du_Web.VBS---Jean-JMST-Belgium---

Amicalement,


Bonjour Jean,
J'avait un bout de code dans ce style, marche bien.
J'ai vu que tu utilisait une syntaxe que je ne connaissait pas:
With CreateObject("ADODB.Stream")
et pour ça je te remercie, je serait moins bête ce soir ;-)
J'ai trois questions:
1- Est-il possible d'utiliser cette syntaxe en appelant une fonction :
With Objet_XMLHTTP
2 - Pourquoi creer d'abord ce que je pense être la version la plus ancienne
(mais peut être me gourre je) du composant XMLHTTP ?
3 - L'objet XMLHTTP n'est pas détruit et l'objet ADODB.Stream n'est pas
fermé ni détruit, normal docteur ?


Avatar
Jean
J'avait un bout de code dans ce style


Il doit y en avoir un du genre maintenant sur le Script Center amha ...

J'ai trois questions:
1- Est-il possible d'utiliser cette syntaxe en appelant une fonction :
With Objet_XMLHTTP


Oui bien sûr.
Ca ne se prêtait pas dans l'exemple parcequ'en VBScript on ne peut pas
imbriquer les With comme en JScript.

2 - Pourquoi creer d'abord ce que je pense être la version la plus ancienne
(mais peut être me gourre je) du composant XMLHTTP ?


Parcequ'il y a plusieurs progid possible pour l'objet.
La fonction Objet_XMLHTTP prend ce qu'elle trouve dans un "sac" de
possibilités.

3 - L'objet XMLHTTP n'est pas détruit


La *variable* objet HTTP n'est pas détruite.
C'est automatique à la fin du script (mais on peut ajouter Set
HTTP=Nothing à la fin si on veut).

et l'objet ADODB.Stream n'est pas fermé


Ce serait effectivement mieux de rajouter .Close dans l'exemple.

ni détruit


On ne peut détruire explicitement que des variables :-)
Implicitement, dans l'exemple, ADODB.Stream est détruit à la fin du
With (End With).

Amicalement,

--
Jean - JMST
Belgium

Avatar
bayosky
Bonjour,

On a eu deux trucs bien distincts
( réponses de Antoine C. et de Jean )
Ma question bête est donc :
Y-a-t-il une raison particulière de préférer l'un plutôt que l'autre.

Merci pour vos lueurs,

HB