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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

MadMxShell: Hacker verbreiten neue Backdoor per Malvertising

Die Anzeigen richten sich an IT-Teams und Administratoren. Ziel ist der Zugriff auf IT-Systeme.

5 Tagen ago

April-Patches für Windows legen VPN-Verbindungen lahm

Betroffen sind Windows 10 und Windows 11. Laut Microsoft treten unter Umständen VPN-Verbindungsfehler auf. Eine…

5 Tagen ago

AMD steigert Umsatz und Gewinn im ersten Quartal

Server-CPUs und Server-GPUs legen deutlich zu. Das Gaming-Segment schwächelt indes.

5 Tagen ago

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

7 Tagen ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

1 Woche ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

1 Woche ago