1. Startseite
  2. PHP
  3. Erhöhen der maximalen Datei-Upload-Größe

Erhöhen der maximalen Datei-Upload-Größe

Übersicht

Standardmäßig sind Datei-Uploads auf weniger als 32 MB beschränkt, auf eine Server für Server Basis, um Missbrauch durch unautorisierte Aktivitäten zu verhindern. Wenn Sie einen größeren Freibetrag benötigen, müssen Sie einige Variablen abstimmen.

Lösung

Das Zulassen größerer Dateiuploads besteht aus drei abstimmbaren Variablen. Diese Variablen können entweder durch eine .htaccess oder ini_set. Der Einfachheit halber wird im folgenden Beispiel von einem Abgleich in einem .htaccess Datei.

Nur upload_max_filesize, post_max_size, und speicher_limit sind relevante abstimmbare Parameter. max_ausfuehrung_zeit und max_eingabe_zeit nicht Uploads beeinflussen.

upload_max_filesize: Steuert die maximal zulässige Datei-Upload-Größe in einem Formular. Dies kann mit dem Suffix "m" versehen werden, um eine Größe in Megabyte zu bezeichnen, z. B. php_value upload_max_filesize 32m

post_max_size: eine Summe von alle Parameter, die von einem Formular übermittelt werden. Als allgemeine Regel gilt: dies sollte etwa 33% mehr sein als upload_max_filesize, z. B. php_value most_max_size 42m

Erläuterung: alle eingereichten Datei-Uploads werden transcodiert in base64was zu einem Anstieg des tatsächlichen Verbrauchs um ca. 33% (gegenüber der ursprünglichen Eingabe) führt. Wenn also ein Upload 6 MB beträgt, rechnen Sie einfach mit einer tatsächlichen Eingabe von ~ 9 MB. Dieser Wert muss höher sein als upload_max_filesize weil es Steuervariablen gibt, die die Beschränkungen für das Hochladen von Dateien vorgeben (Sitzung Variablen), die muss enthalten sein bei der Übertragung. post_max_size muss sich an upload_max_filesize x 33% + input vars, die typischerweise nur einige hundert Kilobyte belegen.

speicher_limit: Dies ist ein nicht abstimmbarer Parameter, unberechtigterweiseStandardmäßig sind die Limits auf 96 MB bei pre-v6 eingestellt. Plattformen und 192 MB auf v6+ Plattformen. speicher_limit beeinflusst die Menge an Speicher, die ein PHP-Skript belegen kann, zusätzlich zu den Dateipuffern, die in den Speicher geladen werden können (denken file_get_contents Verschlucken einer Feile; fread würde nur bis zu n Bytes puffern, solange der temporäre Variablenspeicher in einer iterativen Schleife wiederverwendet wird!). Je nach Implementierung hat memory_limit keinen Einfluss auf Datei-Uploads. Es läuft kurz und bündig auf die Maxime hinaus "Mach keine schlechten Sachen"; schreiben Sie keinen miserablen Code!

Wenn Sie einem miserablen Code ausgeliefert sind, öffnen Sie ein Ticket für uns innerhalb der Bedienfeld um einen Blick darauf zu werfen und eine sinnvolle Vorgehensweise zu bestimmen. Wir werden eine Beurteilung Ihrer Situation vornehmen und in den meisten Fällen Ihr Speicherlimit anheben.

 

Aktualisiert am März 7, 2021

Verwandte Artikel