Suivre la progression d'un téléchargement de fichier

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Suivre la progression d'un téléchargement de fichier

Message par falsam »

Suite à discussion sur le chat de PureBasic, ce code met en oeuvre la fonction ReceiveHTTPMemory() en mode Asynchrone et la fonction GetHTTPHeader() pour connaitre la taille du fichier à télécharger.

Code : Tout sélectionner

Define.s Url, Header, Line
Define.i Size

Procedure.s GetHTTPHeaderElement(HeaderContent.s, Element.s)
  Protected.i ipos1, ipos2
  
  Element + ":"
  ipos1 = FindString(LCase(HeaderContent), LCase(Element), 0)
  ipos2 = FindString(LCase(HeaderContent), #CR$, ipos1)
  
  If ipos1 < ipos2
    ProcedureReturn Mid(HeaderContent, ipos1 + Len(Element), ipos2 - (ipos1 + Len(Element)))  
  EndIf  
EndProcedure

InitNetwork()

;Fichier à télécharger
Url = "http://www.purebasic.com/download/PureBasic_Demo.zip"

Debug "Fichier à télécharger " + GetFilePart(Url) + #CRLF$

;Quel est la taille du fichier
Header =  GetHTTPHeader(Url)
Size = Val(GetHTTPHeaderElement(Header, "Content-Length"))

Debug "Taille du fichier à télécharger : "  + Size + #CRLF$

;Debut du téléchargement
Telechargement = ReceiveHTTPMemory(Url, #PB_HTTP_Asynchronous)

If Telechargement
  Repeat
    Progression = HTTPProgress(Telechargement)
    Select Progression
      Case #PB_Http_Success
        *Memoire = FinishHTTP(Telechargement)
        
        ;Création du fichier reçu
        CreateFile(0, GetFilePart(Url))
        WriteData(0, *Memoire, MemorySize(*Memoire))
        CloseFile(0)
        
        Debug "Téléchargement terminé (Taille: " + MemorySize(*Memoire) + ") 100% " 
        FreeMemory(*Memoire)
        End
        
      Case #PB_Http_Failed
        Debug "Le téléchargement a échoué"
        End
        
      Case #PB_Http_Aborted
        Debug "Le téléchargement a été interrompu"
        End
        
      Default
        Debug "Téléchargement en cours: " + Progression + " octets reçus " + StrF((Progression / Size) * 100, 0) + "%"   
        
    EndSelect
    
    Delay(500) ; Libérer le CPU
  ForEver
Else
  Debug "Erreur de téléchargement"
EndIf
résultat
Un exemple de déroulement a écrit :Taille du fichier à télécharger : 3610921

Téléchargement en cours: 0 octets reçus 0%
Téléchargement en cours: 717663 octets reçus 20%
Téléchargement en cours: 1636647 octets reçus 45%
Téléchargement en cours: 2552799 octets reçus 71%
Téléchargement en cours: 3473199 octets reçus 96%
Téléchargement terminé (Taille: 3610921) 100%
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par falsam »

Gally m'ayant fourni une procédure permettant d'extraire une donnée du header, le code du premier message est modifié en conséquence.

Il est vrai que la procédure GetHTTPHeaderElement(HeaderContent.s, Element.s) est plus avantageuse que ce que j'avais fait.

■ Exemple : GetHTTPHeaderElement(Header, "Content-Length") pour trouver la taille du fichier à télécharger.
La variable Header est initialisée au préalable par GetHTTPHeader(Url).

Merci Gally.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Suivre la progression d'un téléchargement de fichier

Message par GallyHC »

Bonjour,

Ce code m'a bien aider ^^. Sinon j'ai fait une toute petite modification à "GetHTTPHeaderElement()" en ajoutant un "Trim()", pour éviter l'espace avant le texte.

Code : Tout sélectionner

Procedure.s GetHTTPHeaderElement(HeaderContent.s, Element.s)
;
;
;
  Protected.i ipos1, ipos2
  ;  
  Element + ":"
  ipos1 = FindString(LCase(HeaderContent), LCase(Element), 0)
  ipos2 = FindString(LCase(HeaderContent), #CR$, ipos1)
  If ipos1 < ipos2
    ProcedureReturn Trim(Mid(HeaderContent, ipos1 + Len(Element), ipos2 - (ipos1 + Len(Element))))
  EndIf  
  
EndProcedure
Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par Ar-S »

Toujours bon à avoir ce genre de proce merci.
~~~~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
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par falsam »

GallyHC a écrit :en ajoutant un "Trim()", pour éviter l'espace avant le texte.
ça ne fonctionne pas gally. La longueur du fichier n'est pas retournée.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Suivre la progression d'un téléchargement de fichier

Message par Marc56 »

Version avec expression régulière pour extraire la taille du fichier dans l'entête :wink:
(remplace GetHTTPHeaderElement)

Code : Tout sélectionner

Define.s Url
Define.i Size

InitNetwork()

;Fichier à télécharger
Url = "http://www.purebasic.com/download/OgreAssimpConverter.zip"

If CreateRegularExpression(0, "Content-Length: (\d+)")
     ExamineRegularExpression(0, GetHTTPHeader(Url))
     While NextRegularExpressionMatch(0)
          Size = Val(RegularExpressionGroup(0, 1))
     Wend
EndIf


Debug "Taille du fichier à télécharger : "  + Size + #CRLF$

;Debut du téléchargement
Telechargement = ReceiveHTTPMemory("http://www.purebasic.com/download/OgreAssimpConverter.zip", #PB_HTTP_Asynchronous)

If Telechargement
  Repeat
    Progression = HTTPProgress(Telechargement)
    Select Progression
      Case #PB_Http_Success
        *Memoire = FinishHTTP(Telechargement)
        Debug "Téléchargement terminé (Taille: " + MemorySize(*Memoire) + ") 100% "
        FreeMemory(*Memoire)
        End
       
      Case #PB_Http_Failed
        Debug "Le téléchargement a échoué"
        End
       
      Case #PB_Http_Aborted
        Debug "Le téléchargement a été interrompu"
        End
       
      Default
        Debug "Téléchargement en cours: " + Progression + " octets reçus " + StrF((Progression / Size) * 100, 0) + "%"   
       
    EndSelect
   
    Delay(500) ; Libérer le CPU
  ForEver
Else
  Debug "Erreur de téléchargement"
EndIf 
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par falsam »

Dans la version précédente du code, le fichier n'était pas crée. C'est chose faite avec cette nouvelle version.

Dans un souci de simplicité, le fichier est downloadé dans le dossier courant du code.

Le fichier téléchargé est la version de démonstration de PureBasic.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par falsam »

@Marc: Bien la version avec expression régulière !! Par contre quand on crée l'exécutable le poids est doublé. Bon ok ça reste dérisoire.

J'aime beaucoup. Merci.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: Suivre la progression d'un téléchargement de fichier

Message par celtic88 »

il m'a plu et voilà ma contribution

Code : Tout sélectionner

InitNetwork()

#PBHTTP_QUERY_VERSION="#VERSION" ; http version
#PBHTTP_QUERY_RESPONSECODE="#RESPONSECODE" ; status code
#PBHTTP_QUERY_RESPONSEREASON="#RESPONSEREASON"; status code description
#PBHTTP_QUERY_DATE="Date:";server date
#PBHTTP_QUERY_CONTENT_TYPE="Content-Type:";mime type ;https://github.com/miguelmota/mime-ext/blob/master/src/data/mime_types.txt
#PBHTTP_QUERY_CONTENT_LENGTH = "Content-Length:";size of content
#PBHTTP_QUERY_COOKIE="Set-Cookie:";cookie
#PBHTTP_QUERY_LAST_MODIFIED="Last-Modified:";creation or last modified file
#PBHTTP_QUERY_ETAG="ETag:";etag 
#PBHTTP_QUERY_ACCEPT_RANGES="Accept-Ranges:"; accept Ranges
#PBHTTP_QUERY_LOCATION="Location:"; location to redirect link
#PBHTTP_QUERY_CONTENT_DISPOSITION="Content-Disposition:";name of file
#PBHTTP_QUERY_EXPIRES="Expires:";Expires

Procedure.s PBHTTP_HeaderGetQuery(Header.s,QueryType.s)
  For f=1 To CountString(Header,#CRLF$)
    Hi$= StringField(Header,f,#CRLF$)
    If Left(Hi$,5) = "HTTP/" 
      Select QueryType
        Case #PBHTTP_QUERY_VERSION
          ProcedureReturn StringField(Hi$,1,Chr(32))
        Case #PBHTTP_QUERY_RESPONSECODE
          ProcedureReturn StringField(Hi$,2,Chr(32))
        Case #PBHTTP_QUERY_RESPONSEREASON
          ProcedureReturn StringField(Hi$,3,Chr(32))
      EndSelect
    ElseIf Left(Hi$,Len(QueryType)) = QueryType
      ProcedureReturn Mid(Hi$,Len(QueryType)+2)
    EndIf
  Next
EndProcedure

EnTete$ = GetHTTPHeader("http://www.purebasic.com/download/PureBasic.lzx")
Debug EnTete$
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_VERSION)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_RESPONSECODE)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_RESPONSEREASON)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_DATE)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_CONTENT_TYPE)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_CONTENT_LENGTH)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_COOKIE)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_LAST_MODIFIED)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_ETAG)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_ACCEPT_RANGES)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_LOCATION)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_CONTENT_DISPOSITION)
Debug PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_EXPIRES)
.....i Love Pb :)
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par JohnJohnsonSHERMAN »

Comme d'hab, celtic, encore du travail propre et efficace à conserver :) Merci !
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par falsam »

Merci pour cette contribution Celtic :wink:
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: Suivre la progression d'un téléchargement de fichier

Message par celtic88 »

pas de quoi les mec :wink:
code bonus youtube video downloader avec progress :)

j ai pas tro tester

Code : Tout sélectionner

InitNetwork()

Structure YoutubDownloadLinks
  Title.s;{1024}
  Url.s  ;{1024}
  bitrate.l
  Mimetype.s;{1024}
  QualityFps.s;{1024}
  Resolution.s;{1024}
EndStructure

#PBHTTP_QUERY_VERSION="#VERSION" ; http version
#PBHTTP_QUERY_RESPONSECODE="#RESPONSECODE" ; status code
#PBHTTP_QUERY_RESPONSEREASON="#RESPONSEREASON"; status code description
#PBHTTP_QUERY_DATE="Date:";server date
#PBHTTP_QUERY_CONTENT_TYPE="Content-Type:";mime type ;https://github.com/miguelmota/mime-ext/blob/master/src/data/mime_types.txt
#PBHTTP_QUERY_CONTENT_LENGTH = "Content-Length:";size of content
#PBHTTP_QUERY_COOKIE="Set-Cookie:";cookie
#PBHTTP_QUERY_LAST_MODIFIED="Last-Modified:";creation or last modified file
#PBHTTP_QUERY_ETAG="ETag:";etag 
#PBHTTP_QUERY_ACCEPT_RANGES="Accept-Ranges:"; accept Ranges
#PBHTTP_QUERY_LOCATION="Location:"; location to redirect link
#PBHTTP_QUERY_CONTENT_DISPOSITION="Content-Disposition:";name of file
#PBHTTP_QUERY_EXPIRES="Expires:"                        ;Expires

Global  MIMELIST.s="atom=application/atom+xml;woff=application/font-woff;woff2=application/font-woff2;jar=application/java-archive;war=application/java-archive;json=application/json;jsonld=application/ld+json;hqx=application/mac-binhex40;webmanifest=application/manifest+json;doc=application/msword;pdf=application/pdf;ps=application/postscript;rss=application/rss+xml;rtf=application/rtf;geojson=application/vnd.geo+json;kml=application/vnd.google-earth.kml+xml;kmz=application/vnd.google-earth.kmz;xls=application/vnd.ms-excel;eot=application/vnd.ms-fontobject;ppt=application/vnd.ms-powerpoint;pptx=application/vnd.openxmlformats-officedocument.presentationml.presentation;xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;docx=application/vnd.openxmlformats-officedocument.wordprocessingml.document;wmlc=application/vnd.wap.wmlc;7z=application/x-7z-compressed;bbaw=application/x-bb-appworld;torrent=application/x-bittorrent;crx=application/x-chrome-extension;cco=application/x-cocoa;ttf=application/x-font-ttf;jardiff=application/x-java-archive-diff;jnlp=application/x-java-jnlp-file;run=application/x-makeself;oex=application/x-opera-extension;pl=application/x-perl;rar=application/x-rar-compressed;rpm=application/x-redhat-package-manager;sea=application/x-sea;swf=application/x-shockwave-flash;sit=application/x-stuffit;tcl=application/x-tcl;webapp=application/x-web-app-manifest+json;crt=application/x-x509-ca-cert;xpi=application/x-xpinstall;xhtml=application/xhtml+xml;xml=application/xml;xsl=application/xslt+xml;zip=application/zip;midi=audio/midi;m4a=audio/mp4;mp3=audio/mpeg;ogg=audio/ogg;ra=audio/x-realaudio;wav=audio/x-wav;otf=font/opentype;bmp=image/bmp;gif=image/gif;jpeg=image/jpeg;png=image/png;svg=image/svg+xml;tiff=image/tiff;wbmp=image/vnd.wap.wbmp;webp=image/webp;ico=image/x-icon;jng=image/x-jng;appcache=text/cache-manifest;css=text/css;html=text/html;mml=text/mathml;txt=text/plain;vcard=text/vcard;xloc=text/vnd.rim.location.xloc;jad=text/vnd.sun.j2me.app-descriptor;wml=text/vnd.wap.wml;vtt=text/vtt;3gp=video/3gpp;mp4=video/mp4;mpeg=video/mpeg;ogv=video/ogg;mov=video/quicktime;webm=video/webm;flv=video/x-flv;mng=video/x-mng;asf=video/x-ms-asf;wmv=video/x-ms-wmv"

Procedure.s PBHTTP_HeaderGetQuery(Header.s,QueryType.s)
  For f=1 To CountString(Header,#CRLF$)
    Hi$= StringField(Header,f,#CRLF$)
    If Left(Hi$,5) = "HTTP/" 
      Select QueryType
        Case #PBHTTP_QUERY_VERSION
          ProcedureReturn StringField(Hi$,1,Chr(32))
        Case #PBHTTP_QUERY_RESPONSECODE
          ProcedureReturn StringField(Hi$,2,Chr(32))
        Case #PBHTTP_QUERY_RESPONSEREASON
          ProcedureReturn StringField(Hi$,3,Chr(32))
      EndSelect
    ElseIf Left(Hi$,Len(QueryType)) = QueryType
      ProcedureReturn Mid(Hi$,Len(QueryType)+2)
    EndIf
  Next
EndProcedure

Procedure.s String_Between(Txt.s,sStart.s,sEnd.s)
  Protected fd.l=FindString(Txt,sStart),ilStr.l=Len(sStart),ilen.l = FindString(Txt,sEnd, fd+ilStr)- (fd+ilStr)
  If sEnd = #Null$:ilen=Len(Txt):EndIf
  If fd And ilen:ProcedureReturn Mid(Txt,fd+ilStr,ilen):EndIf
EndProcedure
Procedure YoutubGetDownloadLinks(YoutubWebSource.s,List YoutubDownloadLinksList.YoutubDownloadLinks())
  ClearList(YoutubDownloadLinksList())
  Protected Findytplayer.l=FindString(YoutubWebSource,"<script>var ytplayer"); ytplayer.config.args
  If Findytplayer
    YoutubWebSource = Mid(YoutubWebSource,Findytplayer,FindString(YoutubWebSource,"</script>",Findytplayer)-Findytplayer)
    If YoutubWebSource
      Protected Titel.s=  String_Between(YoutubWebSource,Chr(34)+"title"+Chr(34)+":"+Chr(34),"|")
      Protected linkDownload.s= String_Between(YoutubWebSource,Chr(34)+"url_encoded_fmt_stream_map"+Chr(34)+":"+Chr(34),Chr(34)+","); url_encoded_fmt_stream_map // traditional: contains video and audio streamadaptive_fmts              // DASH: contains video Or audio stream
      If linkDownload
        Protected z.l,add.b,i.l,Ids.s:For i  = 2 To CountString(linkDownload,"url=")+1
          Ids=StringField(linkDownload,i,"url=")
          AddElement(YoutubDownloadLinksList())
          YoutubDownloadLinksList()\Title = Titel
          Ids=StringField(Ids,1,",")
          YoutubDownloadLinksList()\Url =URLDecoder(StringField(Ids,1,"\u0026"))
          add=1
        Next
        ProcedureReturn add
      EndIf
    EndIf
  EndIf
EndProcedure

Procedure.s Mime_Get_ex(mime$)
  For t = 1 To CountString(MIMELIST,";")
    txt$=StringField(MIMELIST,t,";")
    If StringField(txt$,2,"=")=mime$
      ProcedureReturn StringField(txt$,1,"=")
    EndIf
  Next
EndProcedure

*Buffer = ReceiveHTTPMemory("https://www.youtube.com/watch?v=kkGeOWYOFoA")
If *Buffer
  Taille = MemorySize(*Buffer)    
  NewList YoutubDownloadLinksList.YoutubDownloadLinks()
  If YoutubGetDownloadLinks(PeekS(*Buffer, Taille, #PB_UTF8),YoutubDownloadLinksList())
    ForEach YoutubDownloadLinksList()
      ;YoutubDownloadLinksList()\Title
      While 1
        EnTete$ = GetHTTPHeader(YoutubDownloadLinksList()\Url)
        Debug YoutubDownloadLinksList()\Url
        RedirectCode.s= PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_RESPONSECODE)
        Debug RedirectCode
        If Left(RedirectCode,1)="3"
          Debug "Redirect link: " +PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_LOCATION)
          YoutubDownloadLinksList()\Url=PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_LOCATION)
          Continue
        EndIf
        GetExtensionmime$= Mime_Get_ex(PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_CONTENT_TYPE))
        GetSizeFile.q= Val(PBHTTP_HeaderGetQuery(EnTete$,#PBHTTP_QUERY_CONTENT_LENGTH))
        
        Telechargement= ReceiveHTTPFile(YoutubDownloadLinksList()\Url, YoutubDownloadLinksList()\Title+"."+GetExtensionmime$, #PB_HTTP_Asynchronous)
        If Telechargement
          Repeat
            Progression = HTTPProgress(Telechargement)
            Select Progression
              Case #PB_Http_Success
                Debug "Téléchargement terminé (Taille: " + Str(GetSizeFile) + ")"
                
              Case #PB_Http_Failed
                Debug "Le téléchargement a échoué"
                End
                
              Default
                Debug "Téléchargement en cours: " + Progression + " octets reçus sur : " + Str(GetSizeFile) +" octets " + Str((Progression*100)/GetSizeFile)+ " %"
                
            EndSelect
            
            Delay(500) ; Libérer le CPU
          ForEver
        Else
          Debug "Erreur de téléchargement"
        EndIf
        
        Break
      Wend
    Next
  EndIf
  FreeMemory(*Buffer)
Else
  Debug "Le téléchargement a échoué"
EndIf
.....i Love Pb :)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par Ar-S »

C'est bon ça. Par contre, selon les videos j'ai obtenu
une fois : erreur ligne 116 : division par 0 interdite. (je n'ai plus l'url)
Le telech a échoué ici : https://www.youtube.com/watch?v=Tpo9WYxLdLY
Une autre est OK : https://www.youtube.com/watch?v=IFLGgKeDWe8
En pb 5.60 x64 et x86
~~~~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
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par venom »

@Ar-S

Tes liens renvoie vers des vidéos dead.





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Suivre la progression d'un téléchargement de fichier

Message par Ar-S »

Bizarre ça. J'ai corrigé. J'ai reussi à en telech une et pas une autre..
Dépend de... Je sais pas quoi.
~~~~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
Répondre