upload -> max Dateigrösse auf unbegrenz stellen
romy
- html
0 Michael Schröpl0 romy
Hi,
soweit ich mich belesen habe, müsste, ohne spezifizierte Angaben, ein Formular Dateien mit unbegrenzter Grösse hochladen. Dem ist aber nicht so, Ich bin noch nicht rausfinden können, bei welcher Grösse er abbricht, aber über 3 MB ging schon nicht mehr.
Muss ich damit leben und den Fileupload anders erzeugen, wenn ja, welche Möglichkeiten habe ich da?
(das gilt für eine Intranetlösung, es müssen alle Dateien uploadbar sein)
ciao
romy
Hi romy,
soweit ich mich belesen habe, müsste, ohne spezifizierte Angaben, ein Formular Dateien mit unbegrenzter Grösse hochladen.
es ist sogar eher so, daß bestimmte Browser die im Formular spezifizierbare Größenbeschränkung ignorieren ...
Dem ist aber nicht so, Ich bin noch nicht rausfinden können, bei welcher Grösse er abbricht,
Definiere "er".
Gehen die Daten von Deinem Client vollständig weg?
Werden sie vom Server vollständig empfangen?
Hat Dein serverseitiges Skript eine Begrenzung?
Hat Dein Webserver eine Begrenzung?
Filtert/unterbricht jemand auf Netzebene (Proxy, Firewall)?
(das gilt für eine Intranetlösung, es müssen alle Dateien uploadbar sein)
Die bisher beschriebenen Symptome sind mir noch zu unspezifisch, als daß ich konkretere Aussagen machen wollen würde. Wenn Du zunächst einmal eingrenzen willst, wie weit die Daten kommen, dann dürfte es helfen, einen Netzwerk-Trace zu machen und ggf. auf dem Server Diagnose-Ausgaben zu machen (ggf. auch im HTTP-Server-Log - steht da die POST-Größe ggf. drin?).
Ich kann mir vorstellen, daß es in der Praxis Obergrenzen geben könnte, halte 3 MB aber nicht für einen entsprechenden Wert.
Dein Problem klingt übrigens nichttrivial - also nach Arbeit.
Viele Grüße
Michael
Hi Michael,
es ist sogar eher so, daß bestimmte Browser die im Formular spezifizierbare Größenbeschränkung ignorieren ...
das dachte ich auch und hatte mich schon gewundert
Dem ist aber nicht so, Ich bin noch nicht rausfinden können, bei welcher Grösse er abbricht,
Definiere "er".
der Browser meinte ich, was aber Quatsch ist
Gehen die Daten von Deinem Client vollständig weg?
Werden sie vom Server vollständig empfangen?
Hat Dein serverseitiges Skript eine Begrenzung?
Hat Dein Webserver eine Begrenzung?
Filtert/unterbricht jemand auf Netzebene (Proxy, Firewall)?
Danke erstmal für Deine Stichpunkte, so etwas ist Gold wert. Ich habe als erstes mal geprüft was Serverseitig ankommt. Es wird der Error Nr. 1 ausgelöst, welcher wohl mit den php.ini-Einstellungen zusanmmenhängt. Da habe ich es auch gleich gefunden, da die max_upload_size auf 2MB gestellt ist.
Jetzt kommen aber neue Probleme auf mich zu. Ich habe versucht diese Einstellung per ini_set zu ändern, was keinen Effekt hat (kein Effekt heisst, der Wert steht danach immer noch auf 2 MB, ausgelesen mit ini_get())
mein Versuch: ini_set("upload_max_filesize","NULL");
einen anderen Wert zuweisen, war auch nicht möglich.
Jetzt weiss ich ehrlich gesagt nicht weiter, denn in der Doku steht, dass ich diesen Wert verändern kann.
Ach ja, Schreibrechte scheine ich aber zu haben, da andere Veränderungen per ini_set auch stattfinden.
Dein Problem klingt übrigens nichttrivial - also nach Arbeit.
ist wohl leider doch trivial :( bloss nicht über die Tischkante geschaut
vielen Dank erstmal
ciao
romy
Hi romy,
Danke erstmal für Deine Stichpunkte, so etwas ist Gold wert.
... in den Händen von jemanden, die sie entsprechend auswertet ... :-)
mein Versuch: ini_set("upload_max_filesize","NULL");
einen anderen Wert zuweisen, war auch nicht möglich.
Wie ist die _zeitliche_ Bindung dieses Parameters?
Der HTTP-Request kommt zum Server und _enthält_ Deine Datei. Jetzt wird PHP aktiviert, behandelt die CGI-Schnittstelle und begrenzt dabei den POST-Inhalt auf 2 MB. _Danach_ wird Dein Skript eingelesen und abgearbeitet ... you lose?
Ich kenne PHP nicht - gibt es dort irgendwas, wo Du die CGI-Behandlung explizit (und dann zeitlich nach Deiner Parameter-Änderung) anstoßen kannst?
Jetzt weiss ich ehrlich gesagt nicht weiter, denn in der Doku steht, dass ich diesen Wert verändern kann.
Während der Laufzeit Deines Skriptes? Oder nur in der statischen PHP-Konfiguration?
Viele Grüße
Michael
Hi Michael,
mein Versuch: ini_set("upload_max_filesize","NULL");
einen anderen Wert zuweisen, war auch nicht möglich.
Wie ist die _zeitliche_ Bindung dieses Parameters?
mhm, da bin ich überfragt!
Der HTTP-Request kommt zum Server und _enthält_ Deine Datei. Jetzt wird PHP aktiviert, behandelt die CGI-Schnittstelle und begrenzt dabei den POST-Inhalt auf 2 MB. _Danach_ wird Dein Skript eingelesen und abgearbeitet ... you lose?
das klingt logisch, aber warum sollte in der DOku dieser Paramter bei ini_set mit aufgeführt sein. Dort stehen ja eigentlich diejenigen Werte, welche auch zur Laufzeit verändert werden können.
Ich kenne PHP nicht - gibt es dort irgendwas, wo Du die CGI-Behandlung explizit (und dann zeitlich nach Deiner Parameter-Änderung) anstoßen kannst?
ich weiss es nicht, aber ich glaube es auch nicht.
Während der Laufzeit Deines Skriptes? Oder nur in der statischen PHP-Konfiguration?
siehe oben
Aber ich habe langsam den Eindruck, dass da noch etwas anderes schiefläuft, da ich es auch nicht statisch ändern kann. (in der ini schon, aber mein Script bleibt auf den 2MB bestehen.)
ciao
romy
Hi romy,
Aber ich habe langsam den Eindruck, dass da noch etwas anderes schiefläuft, da ich es auch nicht statisch ändern kann. (in der ini schon, aber mein Script bleibt auf den 2MB bestehen.)
eine kurze Suche nach "upload" im Apache-Handbuch erbrachte:
http://httpd.apache.org/docs/mod/core.html#limitrequestbody
Aber ich befürchte, Du hast dort einfach den Default-Wert eingestellt ...
Viele Grüße
Michael
Hallo romy,
mein Versuch: ini_set("upload_max_filesize","NULL");
einen anderen Wert zuweisen, war auch nicht möglich.
versuchs mal mit "php_value upload_max_filesize 10M" (->http://de3.php.net/configuration) ggf. musst du noch post_max_size erhöhen.
Grüße aus Nürnberg
Tobias