FTP-Datei-Uploads mit PHP-Protokollen

Sobald das Formular an den Webserver gegangen ist, besteht der nächste (und letzte) Schritt darin, die FTP-Funktionen von PHP dazu zu verwenden, die Daten mittels der vom Nutzer eingegebenen Zugangsdaten auf den FTP-Zielserver zu übertragen. Hier das Script (upload.php), das diese Aufgabe übernimmt (Listing C):

Listing C


Dies mag zwar kompliziert wirken, ist jedoch eigentlich ganz einfach. Die Vorgänge laufen so ab:

  1. Sobald das Formular abgeschickt wird, werden die Zugangsdaten, die der Nutzer in die einzelnen Eingabefeldern eingetragen hat, in normalen PHP-Variablen gespeichert. Jetzt sind durch das spezielle $_FILES-Array von PHP auch Daten über die hochgeladene Datei verfügbar.
  2. Das $_FILES-Array besteht aus mehreren Sub-Arrays, für jede heruntergeladene Datei gibt es eines. Die Schlüsseldaten jedes Sub-Arrays enthalten Informationen über Größe, MIME-Typ, Ursprungsnamen und temporären Namen der entsprechenden Upload-Datei. Diese Informationen verwendet die Funktion move_uploaded_file() zur Übertragung der Datei aus dem Zwischenverzeichnis des Systems in das Arbeitsverzeichnis. Hier muss man daran denken, den Wert für $workDir zu ändern, damit dieser einem gültigen Dateipfad auf dem System entspricht.
  3. Die Funktionen ftp_connect() und ftp_login() werden verwendet, um eine Verbindung mit dem angegebenen FTP-Host aufzubauen und sich mit den bereitgestellten Zugangsdaten einzuwählen.
  4. Einen erfolgreichen Login vorausgesetzt, wird die Funktion ftp_put() verwendet, um die Datei aus dem Arbeitsverzeichnis in das vom Nutzer bezeichnete entfernte Verzeichnis zu übertragen und sie wieder mit ihrer ursprünglichen Bezeichnung zu versehen. Man beachte dabei, dass ftp_put() das spezielle FTP_BINARY-Argument hinzugefügt wurde, mit dem bestimmt wird, dass die Datei binär (und nicht im ASCII-Modus) übertragen wird. Abhängig vom Ergebniscode, den die Funktion ftp_put() zurückmeldet, wird dem Nutzer eine Fehler- oder eine Erfolgsmeldung angezeigt.
  5. Die Funktion ftp_close() dient dazu die FTP-Session zu beenden und die Funktion unlink() wird zum Aufräumen verwendet und löscht dazu die lokale Kopie der Datei, die in Schritt (2) erstellt wurde.

Alles ganz einfach, wie man sieht. Man sollte es also ruhig selber einmal versuchen.

Themenseiten: Anwendungsentwicklung, PHP, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu FTP-Datei-Uploads mit PHP-Protokollen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *