Savoir la taille d'un fichier qui est sur internet
petiflamand
Messages postés675Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 2013
-
20 août 2012 à 19:49
Utilisateur anonyme -
20 août 2012 à 21:25
Bonjour ,
j'utilise ce bout de code que j'ai trouvé ici sur Codes-sources ,
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
DoEvents
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
'MsgBox (Len(sBuffer))
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
je sait avoir la taille du fichier avec sbuffer mais uniquement a la fin du telechargement , donc pour faire une bare de progression je voudrais la taille total avant le telechargement
Merci
A voir également:
Savoir la taille d'un fichier qui est sur internet
Tu peux utiliser HttpWebRequest et lire l'information dans le header.
Dim webrequest As HttpWebRequest = HttpWebRequest.Create("http://....addresse_du_fichier")
With webrequest
.Method = "GET"
.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9) Gecko/2008052906 Firefox/3.0"
.ContentType = "text/xml; charset=utf-8"
.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
.AllowAutoRedirect = True
.Pipelined = False
.KeepAlive = True
.ProtocolVersion = New Version(1, 1)
End With
Dim info As WebResponse = webrequest.GetResponse
messagebox.show(info.Headers("content-length").ToString)