Datei nach Erstellung auf dem Server 1 autom. zum Server 2 senden

julia29

Erfahrenes Mitglied
Auf einem Linux-Server wird eine Datei serverseitig neu erstellt und im Verzeichnis /kunden/daten/ abgelegt.
Die Datei soll anschließend autom. zu einem externen Archiv-Server (Unix Zugangsdaten liegen vor) geschickt werden. Ich hatte mir das folgendermaßen überlegt:

-> Login auf Server 1
-> Aufruf der 'ftp_unix2_senden.php' dort wo die Erstellung der pdf-Datei angeschoben wird (z.B. PDF-export)
-> der neue Dateiname wird in eine Variable geschrieben, damit die richtige Datei zum Server 2 kopiert wird

-> Login zum Server 2
-> FTP-Verbindung per PHP zum Archiv-Server aufbauen
-> PDF-Datei senden (max. 5 MB )
-> FTP-Verbindung wieder beenden

Wie müßte mein 'ftp_unix2_senden.php' -Script aussehen?
Ich habe mir da was zusammengebaut, bin mir aber als php-Neuling nicht sicher ob das überhaupt so richtig ist.
Der 1. Teil produziert noch Fehler, der zweite Teil für sich genommen ist fehlerfrei.

PHP:
<?php  //Aufruf Server 1
$ftp_server = "xxx" ; 
$ftp_user_name = "xxx" ; 
$ftp_user_pass = "xxx" ; 
$conn_id = ftp_connect("$ftp_server"); 
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); 
$passiv = ftp_pasv($conn_id,FALSE);
$query = "SELECT * from ".$table."";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
  echo $row['Text, Text, Text'];

  //... hier müßte nun die /kunden/daten/abc.pdf 
  // aufgerufen u. zum Server 2 geschickt werden
}  
?>


<?php  //Aufruf Server 2
$ftp_server = "xxx" ; 
$ftp_user_name = "xxx" ; 
$ftp_user_pass = "xxx" ; 
$conn_id = ftp_connect("$ftp_server"); 
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); 
$passiv = ftp_pasv($conn_id,FALSE);
//$dat_name =  
if ((!$conn_id) || (!$login_result)) 
{ 
    echo "FTP ist fehlgeschlagen"; 
} 
else 
{ 
    echo "FTP ist erfolgreich"; 
    $upload1 = ftp_put($conn_id, "abc.pdf", "./abc.pdf", FTP_ASCII); 
    } 
?>

Wie müßte ich das richtig schreiben?
 
So schickt man eine Datei über FTP:
PHP:
 <?php
// Verbindungsaufbau
$conn_id = ftp_connect($ftp_server); 

// Login mit Username und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) { 
        echo "FTP Verbindung ist fehlgeschlagen!";
        echo "Verbindungasufbau zu $ftp_server mit Username $ftp_user_name versucht."; 
        exit; 
    } else {
        echo "Verbunden zu $ftp_server mit Username $ftp_user_name";
    }

// Datei hochladen
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 

// Upload überprüfen
if (!$upload) { 
        echo "FTP-Upload ist fehlgeschlagen!";
    } else {
        echo "Datei $source_file auf Server $ftp_server als $destination_file hochgeladen";
    }

// FTP Verbidung schließen
ftp_close($conn_id); 
?>
siehe http://de3.php.net/manual/de/ref.ftp.php
 
Zurück