Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktionieren „post_max_size“ und „upload_max_filesize“ von PHP für Datei-Uploads?

Wie funktionieren „post_max_size“ und „upload_max_filesize“ von PHP für Datei-Uploads?

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 00:01:02389Durchsuche

 How Do PHP's `post_max_size` and `upload_max_filesize` Work Together for File Uploads?

Größenbeschränkungen für PHP-Datei-Uploads verstehen

Die PHP-Konfigurationseinstellungen post_max_size und upload_max_filesize spielen eine entscheidende Rolle bei der Handhabung von Datei-Uploads. Ihre Interaktion kann jedoch verwirrend sein.

Die Verwirrung

Im bereitgestellten Beispiel ist post_max_size auf 8 MB festgelegt, während upload_max_filesize auf 16 MB festgelegt ist. Logischerweise könnte man davon ausgehen, dass Dateien bis zu 16 MB hochgeladen werden könnten. Allerdings setzt die kleinere post_max_size-Grenze diese Annahme außer Kraft, was zu Fehlern führt, wenn versucht wird, Dateien mit mehr als 8 MB hochzuladen.

Definition von Grenzwerten

  • upload_max_filesize : Gibt die maximale Größe einer einzelnen hochgeladenen Datei an.
  • post_max_size: Gibt die maximale Größe des gesamten HTTP-POST-Anfragetexts an, der alle übermittelten Daten einschließlich Dateien umfasst.

Interaktion von Limits

post_max_size fungiert als Gesamtlimit für die Gesamtgröße aller Dateien und anderen Daten, die per POST übermittelt werden. Das bedeutet, dass selbst wenn upload_max_filesize größere Dateien zulässt, die Gesamtgröße der Anfrage post_max_size entsprechen muss.

Lösung für das Hochladen großer Dateien

Um das Hochladen von Dateien zu ermöglichen größer als post_max_size ist, muss eine alternative Möglichkeit gefunden werden, die Datei ohne Verwendung von POST zu übertragen. Dies könnte Folgendes umfassen:

  • Multipart/form-data: Verwendung eines benutzerdefinierten Skripts, das Datei-Uploads unabhängig von den Größenbeschränkungen der HTTP-Anfrage verarbeitet.
  • PUT/PATCH HTTP-Methoden:Verwendung dieser Methoden zum Hochladen großer Dateien über eine REST-API.

Fehlererkennung

Wenn post_max_size überschritten wird, $ _POST und $_FILES werden leer sein. Allerdings ist $_SERVER['CONTENT_LENGTH'] größer als 0. Es ist wichtig zu beachten, dass $_SERVER['CONTENT_LENGTH'] 0 ist, wenn keine Post-Variablen oder Dateien übertragen werden.

Das obige ist der detaillierte Inhalt vonWie funktionieren „post_max_size“ und „upload_max_filesize“ von PHP für Datei-Uploads?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn