Hallo zusammen,
ich versuche, Dateien per FTP vom Server auf eine lokale Maschine zu bekommen.
Mein Problem ist, dass die Dateien nicht auf dem Client geschrieben werden, sondern in das entsprechende Zielverzeichnis auf dem Server (falls es existiert, ansonsten gibt’s natürlich eine Fehlermeldung).
Die Datei „$source_file“ liegt auf dem Server und ist komplett mit Pfadangabe.
„$target_file“ habe ich (mittlerweile) soweit vereinfacht, dass ich dort einen festen Pfad (d:\download) angegeben habe und per „basename“ den reinen Dateinamen von „$source_file“ anhänge.
Ergebnis des Scriptes ist eine downgeloadete Datei im entsprechenden Verzeichnis der Servers und nicht des Clients.
Auch Versuche mit „ftp_pasv“ haben keine Verbesserung gebracht – wobei mir allerdings nicht klar ist, wie ich überprüfen kann, ob der Passivmodus nun wirklich aktiviert ist oder nicht (und ob das für mein Problem überhaupt relevant ist). Als Ergebnis der Funktion „ftp_pasv“ wird mir ja nur geliefert, OB der Befehl funktioniert hat, aber nicht der Status der Verbindung.
Irgendwelche Ideen dazu?
PHP: Version 5
Server OS: Windows
Für Tipps wäre ich dankbar!!
Grüße aus Köln
Jürgen
ich versuche, Dateien per FTP vom Server auf eine lokale Maschine zu bekommen.
Mein Problem ist, dass die Dateien nicht auf dem Client geschrieben werden, sondern in das entsprechende Zielverzeichnis auf dem Server (falls es existiert, ansonsten gibt’s natürlich eine Fehlermeldung).
Die Datei „$source_file“ liegt auf dem Server und ist komplett mit Pfadangabe.
„$target_file“ habe ich (mittlerweile) soweit vereinfacht, dass ich dort einen festen Pfad (d:\download) angegeben habe und per „basename“ den reinen Dateinamen von „$source_file“ anhänge.
Ergebnis des Scriptes ist eine downgeloadete Datei im entsprechenden Verzeichnis der Servers und nicht des Clients.
Auch Versuche mit „ftp_pasv“ haben keine Verbesserung gebracht – wobei mir allerdings nicht klar ist, wie ich überprüfen kann, ob der Passivmodus nun wirklich aktiviert ist oder nicht (und ob das für mein Problem überhaupt relevant ist). Als Ergebnis der Funktion „ftp_pasv“ wird mir ja nur geliefert, OB der Befehl funktioniert hat, aber nicht der Status der Verbindung.
Irgendwelche Ideen dazu?
PHP-Code:
$conn_id = ftp_connect ($host);
$login_result = ftp_login ($conn_id, "anonymous", "");
// $passiv=ftp_pasv($conn_id, 1);
if ((!$conn_id) || (!$login_result))
{
echo "Ftp-Verbindung nicht hergestellt!";
echo "Verbindung mit $host als Benutzer $user nicht möglich";
die;
}
else
{
echo "<br>Verbunden mit \"$host\" als Benutzer \"$user\" <br> ";
}
$target_file="d:\\download\\" . basename($source_file);
$getload = ftp_get($conn_id, $target_file, $source_file, FTP_BINARY);
if (!$getload)
{
echo "Ftp get war fehlerhaft!";
}
else
{
echo "<br>Datei $source_file vom $host in das Verzeichnis $target_file geschrieben";
}
}
Server OS: Windows
Für Tipps wäre ich dankbar!!
Grüße aus Köln
Jürgen
Kommentar