Zum Inhalt springen

Bug in max_file_uploads?


Empfohlene Beiträge

Da in der PHP-Gruppe offensichtlich nix los ist, aber ich gerne einen Meinungsaustausch hätte, stelle ich die Frage nochmal hier rein:

------------------------------------------------

Moin,

da erhalte ich doch gestern (mittlerweile vor längerem) einen Call einer Anwenderin: Sie kann bei neuen Datensätzen einer Intranetanwendung keine Dateien vom Typ xyz mehr hochladen. Hm...

Versuche auf dem System des Kunden ergaben, dass sie fast recht hat, sie kann nämlich bei neuen Datensätzen überhaupt keine Dateien hochladen. Bei einer Datensatzaktualisierung klappt das aber wunderbar.

Ein Versuch auf meinem Testsystem mit identischem Programmstand und originalen Nutzdaten ergab, das alles bestens funktioniert... Hm?

Nach Stunden habe ich dann den Grund dafür gefunden: Sie arbeiten mit PHP 5.2.13, ich mit 5.2.9 und das Problem liegt an der Einstellung max_file_uploads in der php.ini, eingeführt mit 5.2.12 und per default auf 20 gesetzt.

Nun hätte ich angenommen, das mag auch reichen soweit, aber php zählt hier auch leere Dateiuploadfelder mit (also input type='file'...), d.h. auch wenn überhaupt keine Datei ausgewählt worden ist, zählt das als file-upload... *NARF* und da jeder Datensatz 2 upload-felder hat war natürlich nach dem 10. Satz Schluss.

Hattet ihr das Problem auch schon? Ist das ein Bug oder ein Feature?

Wie geht ihr damit um? Gibt es dafür eine andere Lösung, als in der php.ini rumzuschreiben? (Bei diesem Kunden ging das, aber anderswo komme ich an die php.ini ja nicht ran)

Viele Grüße aus Osnabrück

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hatte das zwar noch nicht, aber ein kurzer blick in den php bugtracker zeigt das das ein feature ist. PHP :: Bug #50749 :: max_file_uploads counts empty uploads as well

und aus ihrer perspektive haben sie auch recht.

ein workaround wäre nur soviel file-inputs zu erzeugen wie php verwalten kann, halt per ini_get den wert auslesen. alternativ könnte man die dateien auch grüppchenweise hochladen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mon und Danke für deine Mühe.

Also das ein "leeres" file-input-feld nennenswert Ressourcen verbraucht, halte ich für eine faule Ausrede. Falls nämlich kein einziges gefüllt ist, ist die Antwort quasi sofort da, obwohl das bei meinem Kunden Hunderte solcher Felder sein können.

Im konkreten Fall kann der Kunde in einer Art Grid mehrere Datensätze auf einmal editieren und dann gesammelt speichern. Da jeder Satz der zugrunde liegenden Tabelle 2 Dateien enthalten kann (ein Icon und ein Dokument), habe ich auch für jeden Satz 2 Upload-Felder. Natürlich kommt es praktisch NIE vor, das davon wirklich mehr als 3, geschweige denn mehr als 20, benutzt werden.

Um deinen Workaround aufzugreifen, würde das bedeuten, die Anzahl der Datensätze zu reglementieren... ich nehme an, das das keine Akzeptanz hätte. Ich sehe es schon kommen, da irgendwann wilde Sachen zu programmieren, falls ich wirklich die php.ini nicht ändern kann. *schauder*

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...