Mailinglisten-Archive |
Hallo,
antworte ich mir mal selbst ;)
> Ich erhalte immer die (falsche) Fehlermeldung NO_USER_FILE, wenn die
> hochzuladende Datei größer ist als entweder MAX_FILE_SIZE im Formular
> oder upload_max_filesize. Das Teil erscheint mir nicht ausgereift - z.
> B. benötigt die mitgelieferte Beispieldatei php_flag register_globals
> on, damit sie überhaupt funktioniert ...
>
> Allerdings finde ich auf der Seite vor PEAR keine Infos zu Bugs;
> ausserdem wurde es bereits 11.000 mal heruntergeladen - da muss doch
> schon jemand über den Bug gestolpert sein. Also stelle ich mich
> vielleicht nur besonders dumm an.
Es ist m. E. ein logischer Fehler in der Klasse
(
|| statt && in dieser Bedingung:
function HTTP_Upload_File(xxx)
{
xxxxxx
if (empty($name) || $size == 0) {
^^^^
),
der dazu führt, dass nur Größen zwischen MAX_FILE_SIZE im Formular und
upload_max_filesize mit der korrekten Fehlermeldung ausgegeben werden.
Dateien über upload_max_filesize ergeben die falsche Fehlermeldung,
dass keine Datei mitgesendet wurde. Einfach || durch && ersetzen reicht
und es funktioniert.
Ausserdem kam mir noch post_max_size in die Quere. Da ein Überschreiten
dieses Wertes das $_POST-Array komplett ausleert (und das $_FILES-Array
ebenfalls), kann das Skript in diesem Fall nicht funktionieren. Ich
behelfe mir jetzt, indem ich eine (versteckte) $_POST-Variable mit
übergebe. Ist diese leer, so wurde post_max_size überschritten. Eine
bessere Lösung habe ich im Archiv nicht gefunden.
viele Grüße
Peter
--
----------------------------------------------------------------
Peter Linzenkirchner
Lisardo Multimedia GmbH
Herrenbachstraße 19, 86161 Augsburg
Tel. ++49-821-150565, Fax ++49-821-150595
----------------------------------------------------------------
php::bar PHP Wiki - Listenarchive