CarstenmitProblem: Dateiupload-> Formular/PHP

Hallo!

Ich habe ein etwas verrücktes Problem. Und zwar möchte ich in einem sehr umfangreichen Formular unter anderem die Option anbieten, eine Datei hochzuladen. Das Formular als solches wurde vorher ohne Dateiupload getestet und funktioniert einwandfrei.

Nun habe ich den Dateiupload eingefügt und merkwürdigerweise kann ich nur Bilder hochladen, alle anderen Dateitypen die ich gerade zur Hand hatte funktionierten nicht. Der Fehler wurde allerdings nicht als Fehler gemeldet sondern der Ladebalken wurde angezeigt und es passierte garnichts mehr. Der Fehler war bei verschiedenen Browsern identisch.

Die relevanten Codeschnitzel sind:

echo "<form action='mitarbeiter.php' method='post' enctype='multipart/form-data'>";
echo "<input type='hidden' name='MAX_FILE_SIZE' value=$maxbytesize><input name='datei' type='file' size='83'>";
echo "<button type='submit' value='einreichen' name='mitarbeitereintrag'><img src='ok.gif' width='48' height='48'>";
echo "</form>";

In PHP konnte ich deswegen bisher den Upload nicht testen und auch keine Fehler auswerten :-/

Vielleicht hat ja jemand von Euch eine Idee, woran es liegen könnte?!

MfG

Carsten

  1. Lieber CarstenmitProblem,

    Nun habe ich den Dateiupload eingefügt und merkwürdigerweise kann ich nur Bilder hochladen, alle anderen Dateitypen die ich gerade zur Hand hatte funktionierten nicht.

    In PHP gibt es eine Beschränkung der Dateigröße von hochgeladenen Dateien. Diese mag vielleicht dafür verantwortlich sein. Oder aber das entgegennehmende Script verwirft die Datei, wenn sie kein Bild ist... aber Du hast ja über "mitarbeiter.php" nichts weiter verraten.

    echo "<form action='mitarbeiter.php' method='post' enctype='multipart/form-data'>";

    Das sieht soweit gut aus, daran liegt es sicher nicht.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. In PHP gibt es eine Beschränkung der Dateigröße von hochgeladenen Dateien. Diese mag vielleicht dafür verantwortlich sein. Oder aber das entgegennehmende Script verwirft die Datei, wenn sie kein Bild ist... aber Du hast ja über "mitarbeiter.php" nichts weiter verraten.

      Die Grenze in PHP (64 MB) liegt bei mir weit über denen, der getesten Dateien (ca. 10 - 200 KB).
      Das PHP-Programm macht NICHTS mit der Datei, das was als Datei geschickt wird, wird bisher nicht weiter verarbeitet und bereits hier traten ja die Probleme auf. Ich habe Dateien in unterschiedlichen Größen getestet und die bewegen sich meist im KByte-Bereich. Die Größe der Datei scheint damit nichts zu tun zu haben, da größere Bilder aktzeptiert werden im Gegensatz zu kleinen .doc-Dateien.

      Hat multipart/form-data vielleicht irgendeine dateibeschränkende Auswirkung?

  2. hi,

    Die relevanten Codeschnitzel sind:

    Zuerst mal: Serverseitiger Code interessiert kein Schwein, wenn ein clientseitiges Problem diskutiert werden soll - im Gegenteil, er lässt in den allermeisten Fällen wichtige Fragen offen.

    Poste bitte in solchen Fällen _immer_ den Code, den der Client erhält.

    echo "<input type='hidden' name='MAX_FILE_SIZE' value=$maxbytesize>

    Da wir nicht wissen, welchen Wert $maxbytesize hier liefert, können wir allerhöchstens vermuten, dass du diesen mit deinen "anderen Dateien" vielleicht überschreitest.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hello,

    Vielleicht hat ja jemand von Euch eine Idee, woran es liegen könnte?!

    Auf dem Server könnte hier für Dateiuploads eine Firewall eingerichtet sein, die alle anderen MIME-Types, mit Ausnahme von Bildern, einfach dropped. Damit kommt für PHP überhaupt kein File mehr an.

    Prüfe den Fehlerwert, der Dir in

    $_FILES[$form_file_name][$error]

    übergeben wird. Danach weißt Du eventuell mehr.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Auf dem Server könnte hier für Dateiuploads eine Firewall eingerichtet sein, die alle anderen MIME-Types, mit Ausnahme von Bildern, einfach dropped. Damit kommt für PHP überhaupt kein File mehr an.

      Im Moment ist alles auf localhost. Ich werde mir nachher noch mal in Ruhe die PHP.ini anschauen, vielleicht ist da ja irgendwo etwas im argen.

      Prüfe den Fehlerwert, der Dir in

      $_FILES[$form_file_name][$error]

      übergeben wird. Danach weißt Du eventuell mehr.

      Es gibt da kein Ergebnis, da die Browser beim Abschicken des Formulars nichts mehr machen, quasi einfrieren (aber nicht abstürzen). Bei Bildern funktioniert es fehlerfrei, hatte es bereits mit dem obigen Befehl getestet. Auch wenn keine Datei angegeben wird, funktioniert es fehlerfrei.

      Ich gehe davon aus, dass es einfaches aber elementares Problem sein muss. Aber wo ist der blöde Fehler nur?!

      1. Hello,

        Prüfe den Fehlerwert, der Dir in

        $_FILES[$form_file_name][$error]

        übergeben wird. Danach weißt Du eventuell mehr.

        Es gibt da kein Ergebnis, da die Browser beim Abschicken des Formulars nichts mehr machen, quasi einfrieren (aber nicht abstürzen). Bei Bildern funktioniert es fehlerfrei, hatte es bereits mit dem obigen Befehl getestet. Auch wenn keine Datei angegeben wird, funktioniert es fehlerfrei.

        Und was passiert auf dem Server?
        Hast Du schon mal die Log-Dateien angesehen?

        Wie sieht denn das Script aus, das den Request bearbeiten soll?
        Hast Du schon irgendwie festgestellt, ob es überhaupt angesprochen wird?

        Wenn nein, dann könnte es sein, dass der Server einen Status 204 (No Content) gesendet hat. Das müsste man mit einem entsprechend intelligenten Browser (Firefox) auch feststellen können.

        Was verstehst Du unter "eingefroren"? Kann man den Browser nach dem Request noch bedienen, oder ist er "abgestürzt"?

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau