Das FTP-Skript liegt im Internet auf einem Server, ist also nicht lokal installiert, und soll Dateien kopieren können, die sich wiederum auf einem anderen Server im Internet befinden. Die copy()-Funktion ist hier so ohne weiteres ja nicht zu verwenden. Wie bekommt man die zu kopierende Datei vom Server ins Dateisystem des Servers, auf dem das Skript liegt?
FTP Datei kopieren
Einklappen
X
-
-
Quelle: http://www.hawkee.com/snippet/852/
PHP-Code:<?php
function ftp_copy($source_file, $destination_file)
{
$ftp_server = 'ftp.server.com';
$ftp_user = 'login';
$ftp_password = 'password';
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user, $ftp_password);
if((!$conn_id) || (!$login_result))
{
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user";
}
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
ftp_close($conn_id);
if(!$upload)
{
echo "FTP copy has failed!";
return false;
}
else
{
return true;
}
}
?>
Kommentar
-
@wentz: In deinem Beispiel muss die betreffende Datei über ftp_put() noch hochgeladen werden, d. h. vom lokalen Rechner. Ich dachte an das Kopieren von Dateien, die sich auf dem entfernten Server schon befinden. Oder wäre ein Upload (in diesem Fall dann eher ein 'Transload') der Dateien möglich von einem Server zum anderen ohne Formular input type="file"?
@bla$ter: Können fread() bzw. fwrite() als Funktionen des Dateisystems auch entfernte Dateien lesen/schreiben? Wie gesagt, das Skript liegt auf dem einen Server, die Datei auf einem entfernten, auf dem ich mich über FTP eingeloggt habe.
Kommentar
-
@bla$ter: Können fread() bzw. fwrite() als Funktionen des Dateisystems auch entfernte Dateien lesen/schreiben? Wie gesagt, das Skript liegt auf dem einen Server, die Datei auf einem entfernten, auf dem ich mich über FTP eingeloggt habe.Wenn Sie ausschließlich eine Datei von einem FTP-Server lesen oder Schreiben wollen, sollten Sie die Verwendung der ftp:// Wrapper zusammen mit den Filesystem Funktionen in Betracht ziehen. Dies ermöglicht einen einfacheren und intuitivere Zugriff.
Kommentar
Kommentar