Taille fichier à télécharger

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Taille fichier à télécharger

Message par Atomo »

Salut à tous, j'essai de faire un downloader du même genre que celui de Windows, j'ai donc récupérer ce bout de code de Droopy (que je remercie au passage :wink: ) provenant de son Youtube Downloader, il permet de connaître la taille du fichier à télécharger.
Quand je test ce code chez moi il n'y a pas de problème, le message requester m'affiche bien la taille en Ko du fichier, cependant chez certaines personnes la taille renvoyée est de 0.
Une des personnes utilise Windows XP sp2 comme moi, je ne vois pas d'où vient le problème, quelqu'un pourrait m'aider ? Merci.

Code : Tout sélectionner

Procedure Taille()
  ;Calcule de la taille du fichier à télécharger
  DownloadURL.s = "http://www.purebasic.com/download/PureBasic_Demo.exe" ;adresse de telechargement
    
  Protected hInet, hURL, Bytes
  Protected BufferLength = 2048, Buffer.s = Space(BufferLength) 
    
  Protected Url.s      = DownloadURL.s 
  Protected Filename.s = DownloadFilename.s 
  Protected File
  Protected CurrentSize.f, PreviousSize.f, FileSize.f, time, BytesPerSecond
  Protected Domain.s, String.s, i, BufferLengthWas = BufferLength
  Protected hInetCon, hHttpOpenRequest, iretval 
  
  hInet = InternetOpen_("Downloader",0,0,0,0) 
  hURL  = InternetOpenUrl_(hInet,Url.s,0,0,$80000000,0) 
    
  Domain.s  = StringField(Url.s,3,"/") 
  hInetCon = InternetConnect_(hInet,Domain.s,80,#Null,#Null,3,0,0) 
  If hInetCon 
    hHttpOpenRequest = HttpOpenRequest_(hInetCon,"HEAD",ReplaceString(Url.s,"http://"+Domain.s+"/",""),#Null,#Null,0,$80000000,0) 
    If hHttpOpenRequest 
      iretval = HttpSendRequest_(hHttpOpenRequest,#Null,0,0,0) 
      If iretval 
        HttpQueryInfo_(hHttpOpenRequest,19,@Buffer.s,@BufferLength,0) ;changes the buffer length 
        String.s = PeekS(@Buffer.s,BufferLength): BufferLength = BufferLengthWas 
        If Trim(String.s) = "200" 
          HttpQueryInfo_(hHttpOpenRequest,22,@Buffer.s,@BufferLength,0) 
          String.s = PeekS(@Buffer.s,BufferLength): BufferLength = BufferLengthWas 
          If FindString(String.s,"Content-Length:",1) 
            i = FindString(String.s,"Content-Length:",1) + Len("Content-Length:") 
            String.s = Mid(String.s,i,Len(String.s)-i) 
            FileSize = Val(Trim(String.s))/1024
          EndIf 
        EndIf 
      EndIf 
    EndIf 
  EndIf
    
  MessageRequester("Taille", Str(FileSize))
EndProcedure

taille()
End
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Je ne peux pas te dire, le code fonctionne chez moi...
XP Pro SP2
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Message par Atomo »

D'autres personnes peuvent tester s'il vous plaît et me dire si ça marche bien chez vous ?
Dernière modification par Atomo le mar. 26/févr./2008 0:01, modifié 1 fois.
Neosis
Messages : 113
Inscription : dim. 24/févr./2008 20:11

Message par Neosis »

chez moi ça marche :)
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

Neosis a écrit :chez moi ça marche :)
idem
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bonjour,

chez moi aussi sa fonctionne j'ai même essayer sur mon site perso sa renvoie la bonne valeur bravo Atomo :wink:


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Re: Taille fichier à télécharger

Message par lionel_om »

Atomo a écrit :requester m'affiche bien la taille en Ko du fichier, cependant chez certaines personnes la taille renvoyée est de 0.
Une des personnes utilise Windows XP sp2 comme moi, je ne vois pas d'où vient le problème, quelqu'un pourrait m'aider ? Merci.
Ils ont bien leur connexion Internet active ou y'a pas un parefeu qui bloque ?

Lio :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Message par Atomo »

J'ai crée un programme de mise à jour automatique pour mon application, ces personnes n'arrivent pas à voir la taille du fichier, par contre le téléchargement ne cause pas de soucis.
Il n'y à pas de pare-feu d'après leur dires.

Il n'existe pas une autre façon de connaître la taille d'un fichier ?
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Le demander à une page php !
Atomo
Messages : 207
Inscription : lun. 17/sept./2007 12:27

Message par Atomo »

Le demander à une page php !
Ca reste envisageable dans mon cas, merci du conseil. :)
Répondre