Heim  >  Artikel  >  Backend-Entwicklung  >  Warum schlägt das Hochladen meiner Datei fehl, wenn „upload_max_filesize“ höher als „post_max_size“ eingestellt ist?

Warum schlägt das Hochladen meiner Datei fehl, wenn „upload_max_filesize“ höher als „post_max_size“ eingestellt ist?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-28 12:41:02412Durchsuche

Why Does My File Upload Fail When `upload_max_filesize` is Set Higher Than `post_max_size`?

Verstehen der Rolle von post_max_size und upload_max_filesize in PHP

Bei der Arbeit mit Datei-Uploads in PHP ist es wichtig, das Zusammenspiel zwischen diesen zu verstehen post_max_size- und upload_max_filesize-Anweisungen. Diese Einstellungen bestimmen die maximal zulässige Größe für Datei-Uploads, dienen jedoch unterschiedlichen Zwecken.

Den Unterschied definieren

  • upload_max_filesize: Dies Die Direktive legt die maximale Größenbeschränkung für einzelne hochgeladene Dateien fest.
  • post_max_size: Diese Direktive gibt die maximale Größenbeschränkung für den gesamten HTTP-Anfragetext an, einschließlich aller Formulardaten und hochgeladenen Dateien.

Auswirkungen auf Datei-Uploads

In Ihrem Szenario ist trotz der Einstellung von upload_max_filesize auf 16 MB ein Fehler aufgetreten, der darauf hinweist, dass post_max_size (8 MB) überschritten wurde. Dies liegt daran, dass post_max_size die Gesamtgröße des Anforderungstexts begrenzt, der den Inhalt des Formulars und alle hochgeladenen Dateien umfasst.

Begrenzungen klären

Zur Verdeutlichung: upload_max_filesize fungiert als Obergrenze für die Größe jeder einzelnen Datei, die hochgeladen werden kann. Unterdessen legt post_max_size eine Grenze für die kumulative Größe aller Daten fest, die in der Anfrage übermittelt werden können.

So senden Sie größere Dateien

Wenn Sie Dateien hochladen müssen größer als die von post_max_size zulässige Größe ist, können Sie upload_max_size nicht erhöhen. Stattdessen müssen Sie post_max_size anpassen, um die größere Dateigröße zu berücksichtigen.

Erkennen von Überschreitungen von post_max_size

Es ist erwähnenswert, dass PHP keine eindeutige Anzeige liefert, wenn post_max_size überschritten wird . Normalerweise sind $_POST und $_FILES leer, aber $_SERVER['CONTENT_LENGTH'] ist ungleich Null. Durch die Überwachung dieser Kombination können Sie erkennen, wann post_max_size erreicht wurde.

Das obige ist der detaillierte Inhalt vonWarum schlägt das Hochladen meiner Datei fehl, wenn „upload_max_filesize“ höher als „post_max_size“ eingestellt ist?. 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