OVH Cloud OVH Cloud

Connaître la taille d'un fichier disponible au téléchargement sur internet

14 réponses
Avatar
Bonjour,

Avant de télécharger un fichier sur internet via du code, est-il possible de
connaître la taille de ce fichier ?

Merci d'avance pour votre aide,
Stéphane

4 réponses

1 2
Avatar
Fred
in news:%, Stéphane wrote :

Merci Fred ! T'es trop fort ! Ca marche parfaitement bien !

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click

Dim req As Net.HttpWebRequest

Dim rep As Net.HttpWebResponse

Dim url As String = "http://bldsoftware.com/pgrm/LeConjugueur.zip"

Dim taille As Long

req = Net.WebRequest.Create(url)

rep = req.GetResponse

taille = rep.ContentLength

MsgBox(taille)

End Sub



Es-tu sûr que tu ne télécharges pas le fichier ? Je ne vois pas le
positionnement de la méthode HTTP «HEAD».

req.Method = "HEAD"

D'autre part, il est possible que cela ne fonctionne pas avec tous les
serveurs HTTP, ce que j'avais omis de mentionner dans mon premier post.

--
Fred

Avatar
Bonjour Fred,

Es-tu sûr que tu ne télécharges pas le fichier ? Je ne vois pas le
positionnement de la méthode HTTP «HEAD».



Si si, je télécharge bien le fichier, pas de soucis de ce côté là, mais
après, avec cette méthode :
My.Computer.Network.DownloadFile(url, téléchargement_fichier_complet, "",
"", True, 100000, True)

D'autre part, il est possible que cela ne fonctionne pas avec tous les
serveurs HTTP, ce que j'avais omis de mentionner dans mon premier post.



Il faut que je fasse la mise à jour dans le programme, si ca ne marche pas,
je reviendrai ici.

Stéphane
Avatar
Fred
in news:, Stéphane wrote :

Bonjour Fred,

Es-tu sûr que tu ne télécharges pas le fichier ? Je ne vois pas le
positionnement de la méthode HTTP «HEAD».



Si si, je télécharge bien le fichier, pas de soucis de ce côté là,



Je veux dire : au moment où tu utilise le WebRequest pour déterminer sa
taille. Étant donnée la taille de ton fichier, il est fort possible que
tu le télécharges entièrement sans t'en rendre compte car tu n'as pas
utilisée l'instruction : req.Method = "HEAD"

Il est normal que la méthode fonctionne dans ce cas, mais, à priori, tu
ramènes le fichier dans la réponse. Avec la méthode HEAD, tu ne
récupères que les en-têtes HTTP (sans le fichier) et donc, bien sûr, tu
télécharges celui-ci dans un second temps.

D'autre part, il est possible que cela ne fonctionne pas avec tous
les serveurs HTTP, ce que j'avais omis de mentionner dans mon
premier post.



Il faut que je fasse la mise à jour dans le programme, si ca ne
marche pas, je reviendrai ici.



C'est toi qui développe le site ? Dans ce cas, si la méthode HEAD ne
fonctionne pas, tu peux toujours développer une petite page aspx qui
prend en paramètre d'url le nom du fichier et qui te retourne uniquement
sa taille.

--
Fred

Avatar
Bonjour Fred,

Même si le fichier est assez volumineux, la taille du fichier est retournée
immédiatement, même sans la méthode Head.

Mais j'ai changé d'avis pour le téléchargement, plutôt que d'utiliser My, je
suis en train de regarder justement comment enregistrer le fichier avec
WebResponse.

J'ai quelques difficultés (notamment 1 erreur qui se déclanche sans lever
d'exception), mais je pense que je devrai m'en sortir, surtout que je viens
de trouver 1 jolie classe.

Quant au site, non, ce n'est pas moi qui le développe.

Merci encore Fred,
Stéphane.


"Fred" a écrit dans le message de news:
uUk%
in news:, Stéphane wrote :

Bonjour Fred,

Es-tu sûr que tu ne télécharges pas le fichier ? Je ne vois pas le
positionnement de la méthode HTTP «HEAD».



Si si, je télécharge bien le fichier, pas de soucis de ce côté là,



Je veux dire : au moment où tu utilise le WebRequest pour déterminer sa
taille. Étant donnée la taille de ton fichier, il est fort possible que tu
le télécharges entièrement sans t'en rendre compte car tu n'as pas
utilisée l'instruction : req.Method = "HEAD"

Il est normal que la méthode fonctionne dans ce cas, mais, à priori, tu
ramènes le fichier dans la réponse. Avec la méthode HEAD, tu ne récupères
que les en-têtes HTTP (sans le fichier) et donc, bien sûr, tu télécharges
celui-ci dans un second temps.

D'autre part, il est possible que cela ne fonctionne pas avec tous
les serveurs HTTP, ce que j'avais omis de mentionner dans mon
premier post.



Il faut que je fasse la mise à jour dans le programme, si ca ne
marche pas, je reviendrai ici.



C'est toi qui développe le site ? Dans ce cas, si la méthode HEAD ne
fonctionne pas, tu peux toujours développer une petite page aspx qui prend
en paramètre d'url le nom du fichier et qui te retourne uniquement sa
taille.

--
Fred



1 2