marcus: Fehlermeldung bei Dateiupload

Hallo zusammen,

langsam packt mich der Frust, nachdem ich alles Mögliche versucht habe,
einen Dateiupload zu realisieren.

Über ein Formular rufe ich ein Perl-Script auf, an welches ich Parameter wie
Dateinamen etc. übergebe. In meinem Formular sind alle wichtigen Punkte wie
enctype="multipart/form-data" und method=post berücksichtigt.

Aber ständig bekomme ich die gleiche Fehlermeldung:

Software error:

Malformed multipart POST

Ich kann mit dieser Fehlermeldung herzlich wenig anfangen, zumal man daraus nicht
ersehen kann, ob der Fehler nun im Formular oder gar im Perl-Script liegt.

Da Fehlermeldungen von Perl anders aussehen, gehe ich davon aus, daß es an
meinem Formular liegt. Hier mal ein wesentlicher Ausschnitt daraus:

<HTML>
<HEAD>

<TITLE>Upload</TITLE>

</HEAD>
<BODY bgcolor=white link=0000ff vlink=0000ff>

<CENTER>

<H1><font color=darkblue>Upload</font></H1>
<br>
</CENTER>
<h4>Please choose the file you want to upload</h4>
  <form action="/cgi-bin/upload.pl" method="POST" enctype="multipart/form-data" >
  <br>dateiname :
  <td><br><spacer type=horizontal size=50><input type=file name="datei">
  <tr><td colspan=2><hr>
  <tr>
  <td><br><INPUT type=submit name=action value="submit">
  <td><br><INPUT type=reset name=action value="reset">
  </table>
  </form>
</body>
</HTML>

Wenn mir jemand erklären könnte, was es mit dieser Fehlermeldung auf sich hat
und wo möglicherweise der Fehler liegt, wäre ich dafür sehr dankbar.

Danke im voraus

Gruß
Marcus

  1. Hallo Markus,

    Software error:

    Malformed multipart POST

    klingt nach CGI.pm

    Ich kann mit dieser Fehlermeldung herzlich wenig anfangen, zumal man daraus nicht
    ersehen kann, ob der Fehler nun im Formular oder gar im Perl-Script liegt.

    ich hab das From probiert, mit einem einfachen uploadscript ohne CGI.pm. und es hat fuktioniert. Allerdings habe ich aus dem relativen CGI-pfad einen absoluten gemacht, anders ging es nicht. Aber das liegt wohl eher an meinem Server, als an deinem Form.

    Da Fehlermeldungen von Perl anders aussehen, gehe ich davon aus, daß es an
    meinem Formular liegt. Hier mal ein wesentlicher Ausschnitt daraus:

    <HTML>
    <HEAD>

    <TITLE>Upload</TITLE>

    </HEAD>
    <BODY bgcolor=white link=0000ff vlink=0000ff>

    <CENTER>

    <H1><font color=darkblue>Upload</font></H1>
    <br>
    </CENTER>
    <h4>Please choose the file you want to upload</h4>
      <form action="/cgi-bin/upload.pl" method="POST" enctype="multipart/form-data" >
      <br>dateiname :
      <td><br><spacer type=horizontal size=50><input type=file name="datei">
      <tr><td colspan=2><hr>
      <tr>
      <td><br><INPUT type=submit name=action value="submit">
      <td><br><INPUT type=reset name=action value="reset">
      </table>
      </form>
    </body>
    </HTML>

    Wenn mir jemand erklären könnte, was es mit dieser Fehlermeldung auf sich hat
    und wo möglicherweise der Fehler liegt, wäre ich dafür sehr dankbar.

    ich glaube Du solltest mal dein *.pl script posten.

    Bye Ed X

    1. ich glaube Du solltest mal dein *.pl script posten.

      ja, hier ist es:

      #!/usr/local/bin/perl

      use strict;
      use CGI qw(:all);
      use lib "/opt/perl5/lib/site_perl";
      use CGI::Carp qw(fatalsToBrowser);

      my $cgi=new CGI;
      my $file=param ('datei');
      my $path='/users/www/htdocs/scripts/rema/database/';
      my $upfile=substr($file, rindex($file, "\")+1);
      my $ext=substr($upfile, rindex($upfile, ".")+1);
      my $state = param ('state');

      print header;

      open (UPLOAD,">$path/$state/$upfile");
      while (read ($file, my $buffer, 1024)) {
           print UPLOAD $buffer;
        }
        close (UPLOAD);

      Gruß
      Marcus

    2. Hallo Ed X,

      diese Sache entwickelt sich immer mehr zu einer neuen spannenden Episode
      von Akte X.
      Ich habe alles auskommentiert und quasi Zeile für Zeile wieder reingenommen
      um einfach mal zu sehen an welcher Stelle sich das Script aufhängt
      (das Script hat noch ein paar Abfragen und Schleifen, die ich nicht gepostet habe).
      Und nach und nach hatte ich wieder das komplette Script und siehe da, es funktioniert.
      Ich habe nichts an dem Script verändert außer die Kommentierung wieder rauszunehmen.

      Erklärung??? Keine Ahnung.

      Aber der Upload funktoniert jetzt und das ist das Wichtigste.

      Vielen Dank noch mal für deine Mühe.
      Dank auch an Cheatah.

      Bis zum nächsten mal

      Gruß
      Marcus

  2. Hi,

    Da Fehlermeldungen von Perl anders aussehen, gehe ich davon aus, daß es an
    meinem Formular liegt.

    ich tippe hingegen eher auf ein Browserproblem. Hast Du es mal mit einem anderen versucht?

    Cheatah