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

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

5 Tagen ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

5 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

5 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

5 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

6 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

6 Tagen ago