FTP (Verzeichnis)

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

FTP (Verzeichnis)

Beitrag von adrian »

Hallo zusammen

Wir müssen Bilder von der Festplatte per FTP auf einen externen Web-Server hochladen.

Ist soweit auch kein Problem über Asinet, sofern das Verzeichnis vorhanden ist.

hat jemand eine Idee, wie wir zuerst ein Verzeichniss erstellen können?
(dann müsste jedoch noch geprüft werden können ob das Verzeichnis vorhanden ist oder nicht)

Oder hat sonst noch jemand eine Idee?

adrian
es Grüessli

Adrian
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Tom »

Hallo, adrian.

FTP kennt ein Kommando namens "MKD", also "Make Directory". Aber nicht alle FTP-Server unterstützen das - müsste man mal ausprobieren. Was ist von Dir? Client? Server? Oder beides?

http://tools.ietf.org/html/rfc959
Herzlich,
Tom
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von adrian »

Salü Tom

Ja, FTP wohl, doch bei ASINET (ich möchte ja aus meinem Code heraus die Daten hochladen) nicht, oder?
es Grüessli

Adrian
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Tom »

Hallo, Adrian.

Verstehe. Die FTPClient()-Klasse aus der ASINET-Library kennt aber nur ein paar Methoden, und dazu gehört die Ausführung von beliebigen FTP-Kommandos offenbar nicht. Es wäre interessant, zu sehen, welche Kommandos ASINET wie übermittelt - das kann man leicht sehen, wenn man einen lokalen FTP-Server (gibt es kostenlos zum Beispiel bei www.winftp.com) installiert, den dann kontaktiert (localhost) und sich das Protokoll anzeigen lässt. Möglicherweise könnte man dann eine FTPClient-Klasse ableiten und um die Senderei von Kommandos ergänzen; FTP ist nämlich eigentlich sehr simpel. Ich habe sowohl einen FTP-Server, als auch einen FTP-Client selbstgebaut, aber mit den Bibliotheken von MarshallSoft: www.marshallsoft.com
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Martin Altmann »

Huhu Tom,
Tom hat geschrieben:Ich habe sowohl einen FTP-Server, als auch einen FTP-Client selbstgebaut, aber mit den Bibliotheken von MarshallSoft: http://www.marshallsoft.com
hattest Du das nicht mal mit XB2.NET gemacht? Und wenn ja, warum bist du davon weg?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von adrian »

Ich habe die LIB von Marshall gerade heruntergeladen, habe jedoch das Problem, dass ich nicht mehr debuggen kann, sobald ich die Include-Dateien eingebunden habe.

Klappt dies bei Dir?
es Grüessli

Adrian
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Tom »

@Adrian: In der FCE32.CH steht eigentlich nix drin, das Debuggen verhindern könnte. :?:

@Martin: Stimmt. Der Client ist mit MarshallSoft, der Server mit Xb2.NET gemacht. Sorry für die informatorische Nachlässigkeit.
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Martin Altmann »

Hallo Tom,
dann bin ich ja beruhigt.
Was hast Du denn heruntergeladen und was nutzt Adrian?
Für Adrian relevant wäre wohl: http://www.marshallsoft.com/csc4xb.htm
Du hast ja "nur" http://www.marshallsoft.com/fce4xb.htm

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Tom »

Für Adrian relevant wäre wohl
Warum? Er will doch einen FTP-Client haben, oder?
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von Martin Altmann »

Ach ja - hast ja Recht!
Ich war an Deinem Hinweis mit dem lokalen Server zum Testen hängen geblieben...

Gute Nacht (ist jetzt wohl langsam besser so),
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

PHIL hat eine FTP Klasse die viel kann !
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

ich habe jetzt auch den Bedarf einen FTP Server nach seinem Verzeichnis zu fragen ... aber ich bekomme noch nicht mal einen connect ... :angry5:

Nun mal die Fakten :!:
Dieser Code mit ASINET bekommt eine Verbindung zum Server ... Zugriff OK !

Code: Alles auswählen

#pragma Library( "ASINet10.lib" )
#include "UserData.ch"                 // MY_SERVER, MY_USER, MY_PW werden hier defined
#define TAB  chr(9)
#define CRLF chr(13)+chr(10)

PROCEDURE Main
   LOCAL cFtpServer := MY_SERVER
   LOCAL cUserName  := MY_USER
   LOCAL cPassword  := MY_PW
   LOCAL oFtp, cContents
   oFtp := FTPClient():new( cFtpServer, cUserName, cPassWord )
   IF .NOT. oFtp:connect()
      msgbox("Zugriff verweigert !"+CRLF+;
             "cFtpServer:"+TAB+"'"+cFtpServer+"'"+CRLF+;
             "cUserName:"+TAB+ "'"+cUserName+"'"+CRLF+;
             "cPassword:"+TAB+ "'"+cPassword+"'", "HB FTP Test")
   ELSE
      msgbox("Zugriff OK !", "HB FTP Test")
      // hier kommt der Rest
      oFtp:disconnect()
   ENDIF
RETURN
Dieser Code mit Phils Klasse bekommt keine Verbindung zum Server ... :( !

Code: Alles auswählen

#pragma Library( "XBFTP.LIB" )
#include "XbFtp.ch"
#include "UserData.ch"

*  METHODS:
*        :init( cAddress, cUserId, cPassword, cProxy, nPort )
*        :Open()                 // :connect() bei Asinet
*        :close()                - this also accepts a parameter - do not use it!
*                                  the parameter is entirely for internal use only
*        :destroy()              - a convenient way to properly close a connection
*        :getCurrentDirectory()
*        :setCurrentDirectory(cDirectry)
*        :createDirectory(cDirectry)
*        :deleteDirectory(cDirectry)
*        :deleteFile(cFile)
*        :renameFile(cFile, cNewName)
*        :getFile(cRemoteFile, cLocalFile, lOverWrite, fAttr, nTransferMode)
*        :putFile(cLocalFile, cRemoteFile, nTransferMode)
*        :directory(lSorted, cSpec)
#define TAB  chr(9)
#define CRLF chr(13)+chr(10)

PROCEDURE Main
   LOCAL cFtpServer := MY_SERVER
   LOCAL cUserName  := MY_USER
   LOCAL cPassword  := MY_PW
   LOCAL oFtp, cContents
   oFtp := XbFTP():new( cFtpServer, cUserName, cPassWord )
   IF .NOT. oFtp:open()
      msgbox("Zugriff verweigert !"+CRLF+;
             "cFtpServer:"+TAB+"'"+cFtpServer+"'"+CRLF+;
             "cUserName:"+TAB+ "'"+cUserName+"'"+CRLF+;
             "cPassword:"+TAB+ "'"+cPassword+"'", "HB FTP Test")
   ELSE
      msgbox("Zugriff OK !", "HB FTP Test")
      // hier kommt der Rest
      oFtp:close()
   ENDIF
RETURN
Gruß
Hubert
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: FTP (Verzeichnis)

Beitrag von peternmb »

also bei mir funktioniert diese Klasse von Phil problemlos.

Vielleicht einfach nur ein Tippfehler beim Servernamen?
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

peternmb hat geschrieben:also bei mir funktioniert diese Klasse von Phil problemlos.
Vielleicht einfach nur ein Tippfehler beim Servernamen?
ein Tippfehler kann es nicht sein, denn mit ASINET und mit PowerBasic (da habe ich mir eine Klasse geladen) geht es mit den gleichen Anmeldedaten auch.

Eventuell hast du aber eine verbesserte Version, könntest du mir deine zur Verfügung stellen ?
Gruß
Hubert
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: FTP (Verzeichnis)

Beitrag von peternmb »

brandelh hat geschrieben:Eventuell hast du aber eine verbesserte Version, könntest du mir deine zur Verfügung stellen ?
das müsste die orginale ZIP-Datei sein - ist allerdings auch schon älter
Dateianhänge
xbftp.zip
(13.93 KiB) 262-mal heruntergeladen
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hallo,

eben habe ich das Programm auf Win2000 hinter meiner Fritzbox probiert und beide Versionen funktionieren ...
Unter Win7 musste ich die EXE in der Firewall freischalten, das war aber keine Problem.
Die Probleme hatte ich mit einem XP SP3 Rechner an Vodafone ... auch dort hatte ich der Firewall die Erlaubnis erteilt,
aber vielleicht ist dabei bei der zweiten Datei etwas schief gegangen.

Die PowerBasic Version macht mittlerweile alles, aber bringt Fehler beim FileCopy :cry: es ist zum Mäuse melken ... :roll:

PS: Danke für die Datei, ich werde diese mit meiner vergleichen ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

deine Datei ist genau gleich mit der von Phils Site bei Pablo ... vermutlich liegt es wirklich an der Firewall vom XP Rechner ...
wenn ich an die verlorene Zeit denke :roll:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

Phils Klasse funktioniert nun bei mir Klasse :D

Sollte jemand Quellcode brauchen, kann ich was aus meinen Clientprogramm ausschneiden ;-) einfach melden.

PS: ich verschiebe den Thread mal ins WEB !
Gruß
Hubert
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von adrian »

Ja gerne. Ich muss von einem Server ein File runterladen und dazu ca. 40'000 JPG's (Bilder der Artikel) danach das ganze auf einen anderen Server verschieben. Da muss ich jedoch auch noch die entsprechende Verzeichnis-Struktur erstellen.

Nun, die ersten 300 Artikel gehen recht schnell (ca. 1 Sek. pro Artikel) danach ändert sich die Geschwindigkeit auf 8-10 Sek. pro Artikel, daher nicht brauchbar.

Vielleicht kann ich mit Deinem Code was anfangen.

adrian
es Grüessli

Adrian
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

mein Beispiel lädt DBFs (einschränkbar) auf ein lokales Verzeichnis.
Zweck ist eine Datensicherung, aber auch für Test mit neuen Programmversionen ...

Das Problem beim Upload von einer Workstation ist die geringe Upload-Geschwindigkeit.
Du solltest also versuchen das Programm direkt auf dem Server laufen zu lassen ;-)
Dateianhänge
FTP-Beispiel.PRG
Benötigt XbFTP von Phil Ide
(12.21 KiB) 259-mal heruntergeladen
Gruß
Hubert
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von adrian »

Danke Dir, werde dies mal anschauen.

Das mit der Geschwindigkeit ist mir schon klar, doch es geht ja auch nur um Bilder von ca. 50kB und das problem ist nicht das Upload, es stockt bei der Erstellung von Verzeichnissen.

Bin gespannt, ob es mit dieser Version besser geht. Melde mich.

Adrian
es Grüessli

Adrian
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von adrian »

Hallo Leute

Mit den Tools von Marshall klappt es soweit wunderbar, ausser:

Ich muss noch eine Datei von 16 MB hochladen. Bei ca. 3.8MB wird die Datei jedoch abgebrochen.

Das Problem könnte auch bei memoread liegen. Hier der Code-Teil
sZ := MemoRead("CONTENT.CSV")
oFtp:put("content.csv",sZ)

adrian
es Grüessli

Adrian
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

ich lade Dateien mit 500 MB auf meinem lokalen Rechner ohne Probleme (2GB Hauptspeicher; Regel unter 1/2 des RAM bleiben).
Eventuell begrenzt der Server die Dateigröße ?
Gruß
Hubert
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von adrian »

Nun, ich habe dies auf 3 verschiedenen FTP-Server getestet, da ich auch an ein anderes Problem dachte.

Doch bei allen der gleiche Effekt.
es Grüessli

Adrian
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FTP (Verzeichnis)

Beitrag von brandelh »

Hi,

wenn es nach 3,8 MB abbricht, warum soll dann memoread() schuld sein ?

Das meinte ich mit meinem Hinweis auf die Dateigröße.
Teste doch mal mit dem Beispiel von mir (Phils XbFTP) ... Zum Testen habe ich mir mit FileZilla
einen eigenen Server in die Bude gestellt, den ich über die WEB IP Adresse auch aus dem Internet aufrufen kann.

Ich bin mir im Moment aber gar nicht sicher wie groß die Datei war mit der ich den UPLOAD versucht habe.
Gruß
Hubert
Antworten