Upload von Dateien via PHP

Dateigrößen und Schreibrechte

Funktioniert nicht: MAX_FILE_SIZE

Auf zahlreichen Websites und auch im PHPManual wird kolportiert, dass man zu große Dateien schon vor dem Upload abweisen könne. Dazu müsse man dem Browser die maximale Dateigröße (im folgenden Beispiel 100 MByte) lediglich über MAX_FILE_SIZE per Web-Formular mitteilen:

<input type="hidden" name=
"MAX_FILE_SIZE" value="100000">

Tatsächlich gibt es keinen Browser, der diese Funktion unterstützt.

Der Parameter wird lediglich von PHP ausgewertet - also erst nach dem Upload. Nach dazu ließe sich dieser Parameter, wenn er denn eine Wirkung hätte, benutzerseitig leicht manipulieren.

In der Praxis hat er aus diesen Gründen keine Bedeutung.

Schreibrechte

Zugriffsberechtigungen auf Webservern werden regelmäßig viel zu großzügig vergeben, was Sicherheitsrisiken mit sich bringt. Deshalb zeigen wir Ihnen, wie Sie vorgehen sollten, um dem Webserver die notwendigen Schreibrechte für den uploads-Ordner einzuräumen.

Nachdem Sie den uploads-Ordner angelegt haben rufen Sie im FTP-Client dessen Eigenschaften auf, die beispielsweise so aussehen:

drwxr-xr-x 5 ftpuser ftpuser 4096
Apr 29 2009 uploads

Das d ganz links zeigt, dass es sich hier um ein Verzeichnis (directory) handelt. Die beiden ftpuser verraten, dass das Verzeichnis dem Benutzer ftpuser und der gleichnamigen Benutzergruppe gehört. Aus den auf das d folgenden Zeichen rwx geht hervor, dass der Benutzer ftpuser lesen darf, welche Dateien in dem Ordner stecken (r steht für read), dass er Dateien hineinschreiben (w für write) und in den Ordner wechseln (x) darf.

Das mittlere Dreierpäckchen (r-x) zeigt die Rechte der übrigen Nutzer aus der Gruppe ftpuser. Ihnen fehlt das Schreibrecht genauso wie der dritten Gruppe, den sonstigen am System angemeldeten Benutzern. Welche Benutzer es auf dem Server gibt und welchen Gruppen sie angehören, steht in der Serverkonfiguration (/etc/passwd und /etc/groups), die nur Betreibern eines Root-Servers zugänglich ist.

Wem ein SSH-Zugang zum Server fehlt, der tastet sich per FTP. Setzen Sie über den Eigenschaften-Dialog zusätzlich die Schreibrechte für die Gruppe des Eigentümers (rwxrwxr-x). Schlagen Uploads über das PHP-Skript danach noch fehl, so setzen Sie auch das Schreibrecht für die sonstigen Benutzer (rwxrwxrwx).

Ihr FTP-Client zeigt Benutzerrechte in Zahlenform an? Beachten Sie die Infos zur sogenannten Oktalnotation hier.

Wesentlich komfortabler ist da schon die Lösung per SSH.

Nach dem Login wechseln Sie in das Verzeichnis, das den Ordner uploads enthält. Mit ls-l | grep uploads bringen Sie dessen Eigenschaften auf den Monitor.ps aux | grep-i apache zeigt den Webserver-Prozess an:

www-data 8141 /usr/sbin/apache2
-k start

Der Webserver läuft demnach unter dem Benutzerkonto www-data. Mit chown www-datauploads macht man www-data zum Eigentümer von uploads, wie ls-l bestätigt:

drwxr-xr-x 5 www-data ftpuser 4096
Apr 29 2009 uploads

Der Webserver als neuer Eigentümer des Ordners darf jetzt hineinschreiben, der Benutzer ftpuser aber nicht mehr. Geben Sie einfach der Gruppe ftpuser mit chmod g+w Schreibrechte, um das zu korrigieren.

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".