Seite 1 von 1

FTP Problem beim Senden von Dateien

Verfasst: 15.04.2009 21:14
von php-freak
Habe hier ein kleines FTP Script:

Code: Alles auswählen

Procedure SendDataViaFTP(input)
  If OpenFTP(1, "XXX", "XXX", "XX", 1)
  ForEach Files()
    FileName$ = GetFilePart(Files())
    Result = SendFTPFile(1, Files(), "www/lalal/bla"+FileName$, 0)
    SizeOfFile.l =  FileSize(files())
    Debug "Size"+Str(SizeOfFile)
    SetGadgetAttribute(2, #PB_ProgressBar_Maximum, SizeOfFile)
    Repeat
    Debug "FTP Progress"+ Str(FTPProgress(1))
      SetGadgetState(2, FTPProgress(1))
      Delay(300)
    Until FTPProgress(1) = #PB_FTP_Finished Or FTPProgress(1) = #PB_FTP_Error
    
    SetGadgetState(2, 0)
  
  Next  
  Else
    MessageRequester("Error", "Verbindung zum FTP Server ist fehlgeschlagen")
  EndIf
EndProcedure
So funktioniert der Upload auch und die Dateien sind nachher aufm Server!

Aber ich muss das ja eigentlich so machen:

Code: Alles auswählen

If OpenFTP(1, "XXX", "XXX", "XX", [b]0[/b])
Nur funktioniert das so nicht und er sagt mir das der ProgressBar nicht initalisiert wurde!

Habe den Progress bar in einer Procedure davor aber gestartet und die Procedure noch vor diesem Script.

Ich finde einfach nicht den Fehler.

Danke für eure Hilfe

JENS

Edit: Ich habe natürlich Die Liste Files() Global angelegt!

Verfasst: 15.04.2009 21:17
von X360 Andy
Was ist FB ?

Und für was bitte ist "Input" , in der Procedure ?

Verfasst: 15.04.2009 21:20
von php-freak
Input... Naja man muss ja wenn man das ganze als Thread laufen lässt eine Parameter übergeben und dafür brauch ich input....

FP --> :lol: Naja das sollte FTP heißen!

Verfasst: 15.04.2009 22:00
von Batze
was gibt er denn für eine Fehlermeldung aus?

Verfasst: 15.04.2009 22:38
von php-freak
Naja wenn ich es ändere meint er das der ProgressBar nicht initalisert wurde...

Verfasst: 15.04.2009 22:42
von php-freak
Hier mal ein Bild davon:

Bild

Verfasst: 15.04.2009 22:43
von php-freak
Das passiert aber nur wenn man bei OpenFTP(1, "XXX", "XXX", "XXX", 0) am ende die 0 setzt anstatt die Eins und dann währen des Uploads den Thread killt!

Verfasst: 16.04.2009 00:17
von Bisonte
Bist Du dir sicher das Du auf Gadget Nr 2 auch ein Gadget hast ?

Da die Variable Input bei dir wohl ein "Dummy" ist, kannst Du doch dort die
Gadgetnummer übergeben.

und dann die Zeile mit der fehlermeldung so :

Code: Alles auswählen

SetGadgetAttribute(input, #PB_ProgressBar_Maximum, SizeOfFile) 
korrigieren.

oder Du prüfst mit IsGadget() davor, um ganz sicherzugehen, dass die übergebene Zahl auch wirklich ein initialisiertes Gadget ist.

Edit : Autsch ich sehe jetzt erst das es um Threads geht. Da war doch was von wegen keine fremden Gadgets nutzen ....
Also wenn du Gadgets im Thread benutzen willst, solltest du das komplette Windowhandling (bei Openwin angefangen) in dem Thread haben.

Verfasst: 16.04.2009 10:48
von php-freak
Danke Bisonte!

Ich werde mein Script anpassen und es dann nochmal versuchen!