Lithaila: file upload

Hallo,

hier ein kleines Form zum Hochladen von Dateien:

<FORM method="POST" enctype="multipart/form-data">
<TABLE>
<TR><TD>upload: </TD><TD><INPUT type="file" name="userfile"></TD></TR>
<TR><TD colspan="2" style="text-align:center"><INPUT type="submit" value="submit"></TD></TR>
</TABLE>
</FORM>

Leider bleibt das array $_FILES im empfangenden PHP-Script leer.

Was tun ?

  1. Hallo,

    Leider bleibt das array $_FILES im empfangenden PHP-Script leer.

    Wie stellst du das fest?

    Was tun ?

    Dokumentation lesen.

    Gruß,
    Severin

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
    -- Benjamin Franklin
    1. Leider bleibt das array $_FILES im empfangenden PHP-Script leer.

      Wie stellst du das fest?

      print_r($_FILES);

      Was tun ?

      Dokumentation lesen.
      Bereits durchgeackert.

  2. Ich habe mal upload_max_filesize auf 3MB gesetzt und eine ca 1MB grosse Datei ausgewaehlt. Ich hatte sofort die Antwort, so schnell kann er kein MB hochgeladen haben.

    Nun dachte ich, es liegt an meinen Browser FF1.5 aber beim IE ist es genauso. Was geht da falsch ?

    1. Hallo,

      Ich habe mal upload_max_filesize auf 3MB gesetzt und eine ca 1MB grosse Datei ausgewaehlt. Ich hatte sofort die Antwort, so schnell kann er kein MB hochgeladen haben.

      Nimm einmal eine kleine Datei (3-4KB). Mit großen Datein kann immer wieder mal was schief gehen. Und wenn du im LAN getestet hast, kann er 1MB schon sehr schnell hochladen.

      Gruß,
      Severin

      --
      They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
      -- Benjamin Franklin
  3. Hallo,

    <FORM method="POST" enctype="multipart/form-data">

    Versuch es mal mit einem action-attribut!
    Damit weiss der Server dann sogar, an welche Datei er die Daten schicken muss!

    werbeklaus

  4. Hallo,

    sind _alle_ Fehlermeldungen eingeschaltet? Dazu gehören ganz besonders die Notices. Warum Soviele die immer abschalten, verstehe ich nicht.

    Welches OS verwendest Du für den Webserver?
    Bei Windows könnte ein falsches Upload_temp_dir eingestellt sein und dann klappt das nicht mit dem Upload.

    LG
    Chris

    1. echo $begrüßung;

      sind _alle_ Fehlermeldungen eingeschaltet? Dazu gehören ganz besonders die Notices. Warum Soviele die immer abschalten, verstehe ich nicht.

      Umgekehrt wird ein Schuh draus. Meist sind die ausgeschaltet, und wer nicht weiß dass es diese nützlichen Meldungen gibt, wird sie nicht einschalten.

      echo "$verabschiedung $name";

      1. Hi Dedlfix,

        sind _alle_ Fehlermeldungen eingeschaltet? Dazu gehören ganz besonders die Notices. Warum Soviele die immer abschalten, verstehe ich nicht.

        Umgekehrt wird ein Schuh draus. Meist sind die ausgeschaltet, und wer nicht weiß dass es diese nützlichen Meldungen gibt, wird sie nicht einschalten.

        Das stimmt natürlich.
        Also nochmal zurückspulen und neuer Versuch:
        Warum Soviele die Fehlermeldungen auch dann nicht einschalten, wenn sie wissen, dass es sie gibt...

        So sollte es eigentlich heißen.

        Notices sind die wichtigsten Fehlermeldungen bei PHP, weil das Script trotz dieses Fehlers weiterläuft. Bei anderen Fehlermeldungen wird es i.d.R. abgebrochen, sodass nichts schlimmerers mehr passieren kann.

        http://de3.php.net/manual/de/ref.errorfunc.php

        LG
        Chris

        1. Hallo nochmal,

          kleiner Nachtrag:

          damit man nicht in jedem Script dran denken muss, kann man die Fehlermeldungen auch in einer .htaccess-Datei beinflussen, wenn der .htaccess-Mechanismus für das Verzeichnis (oder die gesamte Domain, Document Root) freigegeben ist.

          Man muss den Wert aber numerisch zuweisen, da die Shell keine PHP-Variablen auswerten kann.

          Der Eintrag

          php_value error_reporting 2047

          reicht.

          LG
          Chris

  5. Der Grund war ein weiteres Form, welches vor dem uploadform stand und nicht geschlossen war (ich zerreiss den typen in der luft!).

    ARGH!

    Trotzdem vielen Dank fuer die Antworten.
    Ich habe viel ueber fileuploads in den letzten 2 Stunden gelernt. ;)