Seite 1 von 3

File herunterladen

Verfasst: 02.03.2008 16:14
von PureNoob
Hallo Ihr Lieben,

ich habe jetzt knapp 1 Stunde mit der SuFu verbracht, bin aber kein Stück weiter.

Mein Anliegen:

Ich möchte eine .exe Datei von meinem Provider-Server in ein vorher über PathRequester definiertes Verzeichnis herunterladen. Ich habe es über URLDOWNLOADTOFILE versucht, aber da nimmt er nur URL Adressen wie der Name ja schon sagt.

Ich wäre Euch echt dankbar :praise: wenn Ihr mir da mal mit dem ein oder anderen Tip weiterhelfen könntet.

Danke schon im Voraus

Gruss PureNoob

Verfasst: 02.03.2008 16:30
von AND51
Schmunzel... ^^

PureBasic 4.20 BETA 2: ReceiveHTTPFile() :allright:

Verfasst: 02.03.2008 16:32
von STARGÅTE
und sonst halt :
URLDownloadToFile_(0,URL$,PATH$+FileName$,0,0)

Verfasst: 02.03.2008 16:33
von PureNoob
Hey Leute,

ich hab es jetzt soweit geschafft:

Code: Alles auswählen

MessageRequester("Update wird gesichert nach:", Parameter\verzeichnis1)
   If URLDownloadToFile_(0,"http://aileanagordon.ai.funpic.de/WoW%20Loader2.exe", #Text_3 + "WoW Loader2.exe",0,0) = #S_OK 
  MessageRequester("Update","Update wurde heruntergeladen") 
Nur leider krieg ich einen Syntax Error der wohlt mit der Angabe #Text_3 zusammenhängt. Aber in #Text_3 steht halt die Adresse drin wohin die Datei gespeichert werden soll... *seufz*

Wo liegt der Fehler... weil ich find ihn echt net.

PureNoob

UDATER LÄUFT!!!

Verfasst: 02.03.2008 16:46
von PureNoob
Man tausche (#Text_3) gegen GetGadgetText(#Text_3) und alles ist in Butter.

Danke trotzdem für Eure Hilfe

PureNoob

Verfasst: 02.03.2008 16:50
von AND51
Man tausche deine PB Version gegen die aktuellste und alles ist auch in Budda.
Welche Version verwendest du? ReceiveHTTPFile() ist URLDownloadToFile_() in gewisser Hinsicht überlegen, denn es funzt auf jeder PLattform und da es ein PB nativer Befehl ist, der sogar HTTP/1.1-Chunked-Encoding unterstützt, bist du damit eindeutig auf der sichereren Seite als mit URLDownloadToFile_().

Danke übrigens für das Feedback.

Verfasst: 02.03.2008 17:29
von PureNoob
Ich benutze die Version 4.0

Aber jetzt habe ich da ein anderes Problem. Wenn ich das Programm mittels Debugger laufen lasse in PB, dann tut es seinen Dienst. Compiliere ich es allerdings mit PB in eine .exe, dann habe ich das Problem dass das Programm kein Update mehr herunterläd und ab der URLDownloadToFile Zeile stehen bleibt und kein anschließender MessegeRequest mit "Update wurde heruntergeladen" kommt.

Woran liegt das? Nur daran dass ich kein ReceiveHTTPFile() verwende?

Gruss PureNoob

Verfasst: 02.03.2008 17:56
von AND51
Aus meinen persönlichen Erfahrungen kann ich nur berichten, dass ich URLDownloadToFile_() nicht mehr traue. Ich kompilierte es mal in ein Programm und führte es auf meinem Rechner aus; der Download schlug fehl.
Das gleiche Programm funktioneirte auf einem anderen Rechner aber tadellos.
Auf dem anderen Rechner wiederum konnte ich zwar die Startseite von Google herunterladen, nicht jedoch meine eigene Homepage.

Du kannst in den Befehl URLDownloadToFile_() nicht reingucken. Keiner weiß, wie das Ding arbeitet. Eben deshlab ist er dem Befehl ReceiveHTTPFile() unterlegen. Ich kann dir nicht sagen, warum es nicht funktioniert. Ich will dich auch nicht damit nerven, aber an deiner Stelle würde ich auf 4.20 BETA 2 updaten und es dann nochmal probieren - mit ReceiveHTTPFile() an deiner Seite! :)

Verfasst: 02.03.2008 18:28
von PureNoob
Hallo AND51,

kannst Du mir dann vielleicht die Zeite mal korrigieren wie muss die denn dann mit dem neuen Befehl aussehen? Und funktioniert der ReceiveHTTPFile() Befehl auch noch in der alten Version die ich habe?

Gruss PureNoob

Verfasst: 02.03.2008 18:40
von AND51
Der Code sieht so aus:

Code: Alles auswählen

InitNetwork()
Debug ReceiveHTTPFile("http://aileanagordon.ai.funpic.de/WoW%20Loader2.exe", "D:\WoW Loader.exe")
...und funktioniert auch bei mir.
1. Parameter: Die URL/Adresse
2. Parameter: Lokaler Pfad+Dateiname unter dem gespeichert werden soll.
Dieser Befehl steht so noch nicht in der Hilfe, weil die Hilfe in der BETA 2 noch nicht aktualisiert wurde.

Da PureBasic's Änderungen von 4.00 auf 4.10 und 4.20 nicht so gravierend sind, wie der Umstieg von 3.94 auf 4.00 dürfte deine Anwendung auch nach einem Upgrade auf PB 4.20 noch funktionieren.
Möglicherweise kannst du ja auch die HTTP-Library bei deiner Version "einpflanzen" und es funktioniert... Würde ich aber nicht machen, denn mit einem einfachen Update auf 4.20 kannst du gleichzeitig viele andere bequeme Neuerungen benutzen.