Dateiupload: Hat PHP einen MaxWert, den ich nicht ändern kann?
obiwan1973
- php
0 Kay0 M.0 dedlfix
0 Der Martin
0 obiwan19730 dedlfix
Hallo zusammen,
ich hätte da eine Frage zum Thema "Dateiupload via PHP":
Nee, das ist jetzt kein Scherz ...
In der php.ini kann ich doch die max. Dateigröße für den Upload festlegen. So, das habe ich gemacht - ist jetzt astronomisch hoch (3 Milliarden TB oder so, natürlich angegeben in "M").
Aber der Upload von derartigen Monsterdateien will einfach nicht.
Kann es sein, dass PHP "innen drin" doch eine MaxGröße hat, an die ich nicht rankomme, an der ich nicht drehen kann?
Nicht wundern - es ist einfach so, es geht hier um eine Intranetanwendung für uns Brögrämmerle und andere EDV-Fuzzys. Das können schon mal größere Dinger sein, die da upgeloaded werden sollen, hat alles seine Richtigkeit.
Deshalb meine Frage: Hat PHP außer der php.ini noch mal ein "ganz allerheiligstes", sowas wie einen Safe, wo ich nicht dran komme? Anders kanns doch gar nicht sein.
Es ist nämlich so - falls jemand fragen sollte - der Upload funktioniert nicht bei diesen Monsterfiles, weil das Uploadscript abbricht, auf dem Weg der Datei "nach oben" gehen wohl sämtliche System-Arrays verloren, also "POST" usw., vermutlich auch "FILES".
Da ich die php.ini angepasst habe und den MaxWert für die Dateigröße extrem hochgeschraubt habe, was kann ich jetzt noch tun?
Gruß und schon einmal ein schönes WE.
Thomas
Welches Betriebsystem ?
Welche Quotierungen sind für Prozesse, Dienste, User ... definiert?
Deshalb meine Frage: Hat PHP außer der php.ini noch mal ein "ganz allerheiligstes", sowas wie einen Safe, wo ich nicht dran komme? Anders kanns doch gar nicht sein.
Es gibt auch noch andere Werte, die den Upload beeinflussen, z.B. die maximale Scriptlaufzeit.
Desweiteren werden einige Werte durch die 32, bzw. 64-Bit Grenze beschränkt.
Bist du sicher, dass du die Werte unbegrenzt erhöhen willst und nicht dein Konzept zu überdenken? IMO ist dein Ansatz für solche Dateien ungeeignet.
Tach!
Es gibt auch noch andere Werte, die den Upload beeinflussen, z.B. die maximale Scriptlaufzeit.
Nö, max_execution_time betrifft nur die Verarbeitungszeit nach dem Upload. Siehe Handling file uploads - Common Pitfalls. Solange die Datei nur an den Zielplatz geschoben wird, sollte diese Begrenzung keinen Einfluss haben. Selbst dann nicht, wenn sie dabei neu geschrieben werden muss (beim Überschreiten von Partitionsgrenzen zum Beispiel), denn dann findet der Zeitverbrauch "outside the execution of the script" statt, nämlich beim Warten auf die Festplatte.
dedlfix.
Nö, max_execution_time betrifft nur die Verarbeitungszeit nach dem Upload.
Danke, wieder was gelernt. Da ich dieses Problem bisher nie hatte, hab ich mich damit nie näher befasst.
Tach!
- Gibt es eine max. Dateigröße, die irgendwo da konfiguriert ist, wo niemand hinkommt??? ... :-)
Nein. Irgendjemand kann immer etwas ändern.
Kann es sein, dass PHP "innen drin" doch eine MaxGröße hat, an die ich nicht rankomme, an der ich nicht drehen kann?
Nein, aber der Webserver begrenzt auch noch. Und in PHP selbst ist für den Upload nicht nur upload_max_filesize, sondern auch post_max_size und nicht zuletzt das memory_limit zuständig.
Es ist nämlich so - falls jemand fragen sollte - der Upload funktioniert nicht bei diesen Monsterfiles, weil das Uploadscript abbricht, auf dem Weg der Datei "nach oben" gehen wohl sämtliche System-Arrays verloren, also "POST" usw., vermutlich auch "FILES".
Konfigurier dir mal das error_log, dass es auf eine schreibbare Datei zeigt (und error_reporting auf E_ALL, display_errors kann/sollte in dem Fall ausgeschaltet sein). Dann (und auch über die Webserver-Logs) kannst du genauer sehen, was angemeckert wird.
dedlfix.
Hallo,
- Gibt es eine max. Dateigröße, die irgendwo da konfiguriert ist, wo niemand hinkommt??? ... :-)
von eventuellen Beschränkungen des verwendeten Dateisystems mal abgesehen ... nicht dass ich wüsste.
In der php.ini kann ich doch die max. Dateigröße für den Upload festlegen. So, das habe ich gemacht - ist jetzt astronomisch hoch (3 Milliarden TB oder so, natürlich angegeben in "M").
Aber der Upload von derartigen Monsterdateien will einfach nicht.
Bedenke, dass der Server selbst auch schon die maximale Größe eines Requests beschränken könnte.
Und in der PHP-Konfiguration sind zwei Werte maßgeblich, nämlich upload_max_filesize (naheliegend), aber natürlich auch post_max_size, was ebenfalls die Gesamtgröße des Requests beschränkt. Such dir was aus. ;-)
Ciao,
Martin
Hallo Leute,
Ihr lagt richtig.
Ich hatte in der php.ini nur den Wert "upload_max_filesize" erhöht und nicht den Wert "post_max_size". Aber an die max. Laufzeit des Scriptes muss ich auch noch denken.
Alles klar und schönen Dank.
Thomas
Tach!
Aber an die max. Laufzeit des Scriptes muss ich auch noch denken.
Ja, jedoch nur für die weitere Verarbeitung. Wie lange der Upload dauert, liegt ja nicht in deiner Hand, und dein PHP-Script startet sowieso erst nach dessen Abschluss.
dedlfix.