FTP-Download mit ftp_get() klappt nicht...
corner
- php
Hallo zusammen,
ich möchte eine Datei vom FTP-Server auf meinen lokalen Rechner herunterladen und benutze dazu ftp_get ( int ftp_stream, string local_file, string remote_file, int mode ). Wie muss ich 'local file' angeben, damit die Funktion die richtige Datei auf meinem Rechner findet. Mit z.B. "C://download.txt" (Windows) hat es bislang nicht geklappt. Auf die 'remote'-Dateien kann ich jedenfalls mit anderen ftp-Befehlen zugreifen. Auch ftp_put() findet die lokale Datei anscheinend nicht.
Verbindet eigentlich ftp_ssl_connect auch dann, wenn gar kein SSL aktiviert ist? Man bekommt ja dieselben Daten zurück, wie wenn man ftp_connect verwendet. Oder funktioniert es nur, wenn auch wirklich eine sichere FTP-Verbindung zustande kommt?
Vielen Dank
corner
hallo erstmal!
bist du auch in den entsprechenden verzeichnissen?
du kannst meines wissens nach als local_file ja nur eine datei angeben, ohne pfad. du musst für eine korrekte übertragung (egal welche richtung) bereits auf beiden servern im richtigen verzeichnis sein.
ein stück code würde eine weitere hilfe sicher erleichtern ;)
bei deinem ssl-problem kann ich dir nicht helfen...
lg,
der-daniel
Hello,
ich möchte eine Datei vom FTP-Server auf meinen lokalen Rechner herunterladen und benutze dazu ftp_get ( int ftp_stream, string local_file, string remote_file, int mode ).
http://www.php.net/manual/en/function.ftp-get.php
Läuft denn PHP auf Deinem lokalen Rechner?
Wie muss ich 'local file' angeben, damit die Funktion die richtige Datei auf meinem Rechner findet. Mit z.B. "C://download.txt" (Windows) hat es bislang nicht geklappt.
bei ftp_get ist "local_file" das Ziel der Übertragung. Die Datei muss nicht gefunden werden, da sie rigoros überschrieben wird, wenn sie vorhanden war und sonst neu angelegt. Das Zielverzeichnis (mit "lpwd" kann man es sich z.B. in einem FTP-Client ansehen) muss für den FTP-Client beschreibbar sein.
Auf die 'remote'-Dateien kann ich jedenfalls mit anderen ftp-Befehlen zugreifen. Auch ftp_put() findet die lokale Datei anscheinend nicht.
Wenn PHP ebenfalls auf einem entfernten Host läuft, der nicht mit demjenigen identisch ist, auf dem der FPT-Server läuft, dann kannst Du z.B. die Datei erst mit PHP auf den "PHP-Server" holen und von dort aus mittels HTTP an Deinen Client ausliefern lassen. Das Script würde Dir dann einen Download-Dialog auf dem Browser verursachen und Du könntest entscheiden, wohin die Datei lokal geschrieben werden soll.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
also habe ich das richtig verstanden, ftp_get() funktioniert gar nicht wie z.B. ein FTP-Programm, mit dem ich Dateien von meiner localen Festplatte auf einen entfernten Server hoch- und auch wieder runterladen kann?
Die Zieldatei muss immer irgendwo sein, wo sich auch der Server befindet?
Gruß coner
Hello,
also habe ich das richtig verstanden, ftp_get() funktioniert gar nicht wie z.B. ein FTP-Programm, mit dem ich Dateien von meiner localen Festplatte auf einen entfernten Server hoch- und auch wieder runterladen kann?
Die Zieldatei muss immer irgendwo sein, wo sich auch der Server befindet?
Die Zieldatei wird dort "angeliefert", wo ftp_get() ausgeführt wird.
Wenn Du einen XAMMP auf deinem Host laufen hast, der diese Funktion ausführt, dann ist das Zielsystem dein Host.
Die Funktion funktioniert also GENAU wie ein FTP-Programm, das ja bekanntlich aus zwei Teilen besteht:
- FTP-Server beantwortet Fragen und führt Aufträge auf seinem (lokalen) Filesystem aus
- FTP-Client stellt Fragen und gibt Aufträge an den Server
Der Host, auf dem ftp_get() ausgeführt wird, ist dann folglich der FTP-Client
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom