Probleme bei grossen Dateiuploads
Herbie
- php
Hallo!
Vielleicht kann mir jemand bei meinem Problem helfen. Ich möchte Dateien auf einen Server uploaden mit Hilfe eines HTML-Formulars und PHP. Im Prinzip funktioniert alles wunderbar aber bei grösseren Dateien ab 8 MB klappt es nicht mehr.
Im HTML-Code ist max. Grösse 12 MB angegeben und mit phpinfo() bekomme ich folgende Einstellungen ausgegeben:
max_execution_time: 180
memory_limit: 50M
post_max_size: 8M
upload_max_filesize: 50M
Bis auf mit post_max_size sollte ich keine Probleme haben. Ich habe schon versucht mit ini_set() den Wert von post_max_size während der Laufzeit zu erhöhen aber irgendwie funktioniert der Upload immer noch nicht.
Gibt es vielleicht noch eine weitere Möglichkeit wie ich Dateien jenseits der 8 MB uploaden kann?
Und bevor einer sagt "Stell es doch einfach in der php.ini um": Es ist nicht mein Server und ich komme nicht an die php.ini nicht ran. Ist ein Server bei Strato.
Gruß
Herbie
Hi Herbie,
post_max_size: 8M
upload_max_filesize: 50M
Bis auf mit post_max_size sollte ich keine Probleme haben. Ich habe schon versucht mit ini_set() den Wert von post_max_size während der Laufzeit zu erhöhen aber irgendwie funktioniert der Upload immer noch nicht.
Ich habe in diese Richtung auch schon mal etwas experimentiert - das Problem liegt darin, dass post_max_size die maximale Größe an Daten angibt, die PHP überhaupt über POST empfängt. Sind es mehr, dann wird der Empfang der Daten abgebrochen und im PHP Script stehen in $_FILES überhaupt keine Daten mehr zur Verfügung, auch keine Fehlermeldungen.
Und post_max_size kannst du nicht zur Laufzeit setzen, siehe auch PhpManual, Verarbeitung von Daten, gleiches gilt für upload_max_filesize, s. [linhk:http://de2.php.net/manual/de/ini.sect.file-uploads.php#ini.upload-max-filesize@title=Datei Uploads].
Gibt es vielleicht noch eine weitere Möglichkeit wie ich Dateien jenseits der 8 MB uploaden kann?
Ohne die Serverkonfiguration zu ändern, fürchte ich nein. Wobei es eigentlich Schwachsinn ist, für upload_max_filesize einen größeren Wert als für post_max_size anzugeben.
Und bevor einer sagt "Stell es doch einfach in der php.ini um": Es ist nicht mein Server und ich komme nicht an die php.ini nicht ran. Ist ein Server bei Strato.
Dann wird sich wohl nicht viel machen lassen sofern Strato sich nicht bereit erklärt, den Wert für post_max_size hochzusetzen.
Aber vielleicht hat ja noch jemand anderes eine Idee ;-)
MfG, Dennis.
n'abend,
Dann wird sich wohl nicht viel machen lassen sofern Strato sich nicht bereit erklärt, den Wert für post_max_size hochzusetzen.
hatte das früher auf meinem sharedHosting bums mit einer .htaccess gelöst...
[inhalt von .htaccess:]
<FilesMatch ".(php|html?)$">
php_value upload_max_filesize 123M
php_value post_max_size 123M
</FilesMatch>
[end of file]
sollte so funktionieren...
weiterhin schönen abend...
Hi globe,
php_value upload_max_filesize 123M
php_value post_max_size 123M
sollte so funktionieren...
Nur, wenn PHP als Apache-Modul eingebunden ist und du die entsprechenden Rechte besitzt, also mindestens AllosOveride Options
. Und auch das geht wenn ich Cange Configuration Settings richtig verstanden habe nur dann, wenn nicht auf höherer Ebene (httpd.conf) selbiges schon mit php_admin_value gesetzt wurde.
Läuft PHP über CGI, könntest du noch die Runtime Configuration ausprobieren, dabei legst du eine Datei names php.ini in den Ordner und machst in ihr die entsprechenden Angaben wie in der richtigen php.ini.
MfG, Dennis.
Hi,
hatte das früher auf meinem sharedHosting bums mit einer .htaccess gelöst...
Wenn der Serverbetreiber so "kulant" ist, daß er Änderungen an solch wichtigen Einstellungen von jedem Heiopeio-Kunden nach Belieben zuläßt, kann man sehr wahrscheinlich auch einfach mit einer lokalen php.ini arbeiten. :-)
Gruß, Cybaer
hi,
Ich habe schon versucht mit ini_set() den Wert von post_max_size während der Laufzeit zu erhöhen aber irgendwie funktioniert der Upload immer noch nicht.
natürlich nicht. wenn dein script zu laufen beginnt, ist der upload bereits abgeschlossen. dass es dann nicht mehr viel sinn ergibt, im nachhinein diesen wert ändern zu wollen, sollte einleuchten.
schau im manual nach, _wo_ sich diese option ändern lässt, und überlege dann, ob dir diese möglichkeit offen steht.
gruß,
wahsaga