Recevoir fichier d'un serveur HTTP

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Recevoir fichier d'un serveur HTTP

Message par wolfjeremy »

Salut, je voulais savoir, comment je peut par exemple recuperer une image, sur un serveur http ?

Merci d'avance pour votre réponse.
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

Si l'image n'est pas trop grosse tu peux la télécharger avec urldownloadfile() qui bloque le programe jusqu'a la fin du téléchargement donc tu peux le mettre dans un thread. Pour avoir un call back avec barre de progression recherche les post sur urldownloadfile sur le forum ( un de moi) car il y a un code source complet mais compliqué bien que commenté en Anglais.
voilà :wink:
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

super merci :o
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

C'est une commande pour la version 4 ? :cry:
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

non, c'est une commande de l'api windows

Code : Tout sélectionner

url.s = "http://www.purebasic.com/images/logopb.gif"
out.s = "c:\purebasic.gif"

Import "urlmon.lib"
  
  Download.l(*pCaller.l,szURL.s,szFileName.s,*dwReserved.l,*lpfnCB.l) As "_URLDownloadToFileW@20"
  
EndImport

Debug Download(0, url, out, 0, 0)
Debug URLDownloadToFile_(0, url, out, 0, 0)
Image
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ha bon :D super, merci.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Je doit mettre quoi a " Import "urlmon.lib" " ? :oops:
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

dommage que cela ne fonctionne pas avec un proxy
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

wolfjeremy a écrit :Je doit mettre quoi a " Import "urlmon.lib" " ? :oops:
Tu n'y touches pas !
Tu peux changer cela :
url.s = "http://www.purebasic.com/images/logopb.gif" ; ce que tu veux télécharger
out.s = "c:\purebasic.gif" ; l'endroit où tu enregistres le fichier

Voilà :wink:
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ha... parce que si j'y touche pas sa va pas lol

Il me dit syntax error!
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

Il faut que tu utilises ce code sur Pure Basic v4 beta X
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Ha merde ok, j'ai pas la beta :wink: merci.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Mais tu n'as pas du tout besoin de la bêta pour faire fonctionner ce code mais il te faut une version enregistrée pour exécuter les API:

Code : Tout sélectionner

Procedure Ansi2Uni(ansi.s) 
    size.l=MultiByteToWideChar_(#CP_ACP,0,ansi,-1,0,0)    
    Dim unicode.w(size) 
    MultiByteToWideChar_(#CP_ACP, 0, ansi, Len(ansi), unicode(), size)  
    ProcedureReturn unicode()  
EndProcedure 

If OpenWindow(0, 200, 200, 400, 100, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget, "PureBasic Window") 
  CreateGadgetList(WindowID(0)) 
  ButtonGadget(0, 320, 20, 60, 20, "Go") 
  StringGadget(1,10,20,300,20,"Borderless StringGadget",#PB_String_BorderLess) 
EndIf    
SetGadgetText(1, "http://www.purebasic.com/screenshots/Editor.png") 
Repeat 
  event = WindowEvent() 
  Select event 
    Case #PB_EventGadget 
      Select EventGadgetID() 
        Case 0 
          If OpenLibrary(0,"shdocvw.dll") And IsFunction(0,"DoFileDownload") 
            texte$=GetGadgetText(1) 
            CallFunction(0,"DoFileDownload",Ansi2Uni(texte$)) 
          EndIf 
      EndSelect 
  EndSelect 
Until event =#PB_EventCloseWindow  
CloseLibrary(0) 
End
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

merci bien.
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Message par Le psychopathe »

Nico j'ai essayé ton code sur PB 3.94 et v4 et il plante sur les deux.
Répondre