Julia: Datei-Upload gibt keine Fehlermeldung, wenn Datei zu groß

Hi,
ich habe in php einen Dateiupload erstellt, der auch wunderbar funktioniert.
Ich habe mir nun überlegt, die Fehlermeldungen so zu formulieren, daß der Benutzer auch weiß, weshalb der Upload schiefgelaufen ist. Dazu habe ich die $_FILES['meinUploadelement']['error'] ausgewertet und wollte dies testen, indem ich eine zu große Datei hochlade.

Tja, nun kommts: es kam kein Fehler! Ich kann natürlich jede beliebige Datei auswählen, wenn ich danach aber $_FILES['meinUploadelement']['tmp_name'] abfrage, steht dort nichts drin. Die file_size ist entsprechend 0. Auf den Upload-Button, bei dem ich den Upload anstoße, reagiert er gar nicht. Ich habe keine Möglichkeit, dem Benutzer mitzuteilen, daß der File zu groß ist, weil der File offensichtlich gar nicht erkannt wird. Es ist, als ob ich nichts abschicke.

Hat hier einer eine Idee, wie ich heraufinden kann, ob eine Datei zum Upload "abgegeben" wurde? Ich habe das ganze mit verschiedenen Files verschiedener Dateitypen und -größen probiert, die Parameter max_execution_time und upload_max_filesize in der php.ini sind auch groß genug gewählt. Der Fehler tritt wirklich nur dann auf, wenn die Datei größer als die von mir gewählten 8MB ist. Da der Upload ansonsten funktioniert, kann es auch kein Berechtigungsproblem sein.

Viele Grüße,
Julia

  1. Hallo,

    bin verwirrt:

    ich habe in php einen Dateiupload erstellt, der auch wunderbar funktioniert.

    Funktionierts nun?

    Tja, nun kommts: es kam kein Fehler!

    Oder nicht?

    die Parameter max_execution_time und upload_max_filesize in der php.ini sind auch groß genug gewählt.

    Es gibt auch eine post_max_size (o.s.ä.)

    Gruß,
    Leeloo

    --
    "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
    1. Hallo,

      oh, jetzt ... nach dem, ich glaube 5. Mal gelesen hab. Hast recht. Geht bei mir auch nicht. Es kommt schon eine Meldung:  PHP Warning:  POST Content-Length of 23512287 bytes exceeds the limit of 16777216 bytes in Unknown on line 0 (steht im error_log vom Webserver).
      D.h. ich hab versucht ca. 23 MB hochzuladen, obwohl ich nur 16MB darf. Is echt blöd, denn weder im $_REQUEST noch im $_FILES kommt was an.

      Ich hab dann mal spaßeshalber die post_max_size auf 25MB gestellt. Der Upload funktionierte dahingehen, dass ich folgendes in $_FILES zu stehen hatte:

      [name] => grossesfile.abc
       [type] =>
       [tmp_name] =>
       [error] => 1
       [size] => 0

      Da ja immer noch upload_max_size auf 16MB steht, funzt es halt net.

      Kommt jedoch eine Datei die noch größer ist als 25MB, gibt es wieder mal nur die obige PHP-Warnung.
      Wär schon echt blöd, wenn man die post_max_size auf eine was weiß ich für Größe setzen muss, damit man noch das $_FILES bekommt und checken kann, ob da nun nen Fehler auftrat oder nicht.

      Wie man das nun behebt, das tät mich jetzt aber auch mal interessieren ...

      Gruß,
      Leeloo

      --
      "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
      1. Hi Leeloo,
        aber immerhin hast du mir schon einmal einen Ansatz geliefert, woran es liegt! Tatsächlich ist es bei mir so, daß die post_max_size denselben Wert hat wie die upload_max_size. Ich werde sie mal ordentlich hochsetzen und kann dann wenigstens über die error-Auflistung einen Fehler ausgeben, wenn jemand 100MB hochladen will.

        Dank dir!

        Viele Grüße,
        Julia

  2. Ich vermute du nutzt den überflüssigen Parameter im HTML:
    max-filesize.
    Wirf Ihn raus.

    Timo

    1. Hi Timo,
      danke, aber den nutze ich nicht. Lag daran, daß in der ini post_max_size genauso groß war wie upload_max_size. Trotzdem danke!

      Viele Grüße,
      Julia

  3. Hi Julia,

    Ich habe mir nun überlegt, die Fehlermeldungen so zu formulieren, daß der Benutzer auch weiß, weshalb der Upload schiefgelaufen ist. Dazu habe ich die $_FILES['meinUploadelement']['error'] ausgewertet und wollte dies testen, indem ich eine zu große Datei hochlade.

    Hilft dir http://de3.php.net/manual/de/features.file-upload.errors.php ???

    ciao
    romy

    1. Hi Romy,
      die Error-Auflistung kannte und benutzte ich schon, nur gab es bei den von mir geschilderten Fällen gar keine Files-Auflistung und demzufolge auch keine Error-Auflistung.
      Es lag daran, daß in der ini post_max_size genauso groß war wie upload_max_size.

      Trotzdem danke und viele Grüße,
      Julia