44 Stimmen

PHP: Upload großer Dateien

Tutorial von Stefan Trost | 18.09.2014 um 19:20

Standardmäßig erlaubt PHP oftmals nur Datei-Uploads mit einer Maximalgröße von 2 MB in der Grundeinstellung. Diese Grenze ist oftmals bereits bei hochauflösenden Fotos erreicht (von ZIP-Ordnern, Videos oder Musik möchte ich gar nicht erst sprechen).

Heute möchte ich euch zeigen, wie ihr diese Limitierung ändern und damit auch größere Fileuploads erlauben könnt. Die erste Möglichkeit arbeitet global über die Einstellungen in der php.ini, mit der zweiten Möglichkeit könnt ihr lokal über eine HTACCESS Datei auch für einzelne Ordner individuelle Werte setzen.

Beachtet bitte auch die Einschränkungen eures Hosters. Wenn man keinen eigenen Root Server besitzt, darf man die php.ini in den meisten Fällen nicht ändern.

Einstellungen in der php.ini

Je nach System findet ihr die php.ini zum Beispiel in den Ordnern "/etc/php5/apache2/php.ini", "/etc/php.ini" oder "C:\Program Files\PHP\PHP.ini". Öffnet die Datei in einem Editor und passt die folgenden Werte an:

upload_max_filesize = 100M
post_max_size = 128M
memory_limit = 256M
max_input_time = 300
max_execution_time = 300

Der wichtigste Wert ist "upload_max_filesize", den wir hier auf 100 MB ersetzen. Dies setzt das Limit für die maximale Größe hochgeladener Dateien auf 100 MB.

Damit es funktioniert, ist aber auch die Sichtung der anderen gezeigten Werte nötig, da der Fileupload ansonsten auch daran scheitern könnte. Der Wert "post_max_size" (maximale Größe der POST-Daten insgesamt) sollte etwas höher liegen als "upload_max_filesize", "memory_limit" (wie viel Byte darf ein Skript beanspruchen) ebenfalls. 

Zusätzlich müssen wir bedenken, dass das Hochladen großer Dateien (je nach Internetverbindung) lange dauern kann. Daher sollten wir auch die Werte von "max_input_time" und "max_execution_time" so hoch wie nötig setzen. Hier setzen wir die Werte beispielsweise auf 300 Sekunden (5 Minuten). Schließlich muss das Skript mindestens so lange laufen, bis der Upload abgeschlossen ist.

Die Konfiguration in der php.ini bezieht sich auf das gesamte System und ist erst nach einem Restart von Apache/PHP aktiv. Also nicht vergessen, nach den Änderungen neu zu starten.

Einstellungen in der .htaccess Datei

Um die entsprechenden Werte lokal für bestimmte Ordner zu setzen oder für den Fall, dass man keinen Zugriff auf die php.ini bei seinem Webhosting-Anbieter hat, kann man die selben Werte auch mit einer .htaccess Datei im entsprechenden Verzeichnis oder im Root-Verzeichnis setzen.

php_value upload_max_filesize = 100M
php_value post_max_size = 128M
php_value memory_limit = 256M
php_value max_input_time = 300
php_value max_execution_time = 300

Damit ist es auch möglich je nach Verzeichnis unterschiedliche Werte zu verwenden.

Einstellungen mit PHP ändern

Zuletzt möchte ich euch auch nicht die Möglichkeit vorenthalten, die Werte direkt innerhalb eine eines PHP-Skripts zu ändern.

ini_set('upload_max_filesize', '100M);
ini_set('post_max_size', '128M);
ini_set('memory_limit', '256M);
ini_set('max_input_time', '300);
ini_set('max_execution_time', '300);

Auch hier ist allerdings zu beachten, dass nicht jeder Anbieter dieses Verfahren erlaubt.

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

Programm im ZIP-Ordner

Info | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.