red_or_dead: datei übergeben.....

hallo leute,

ich habe folgendes problem:

ich habe ein formular in dem u.a. eine datei-upload-feld vorhanden ist. wird das formular abgeschickt, wird es von einem perl-skript ausgewertet und überprüft, ob die daten richtig eingegeben wurden. falls nicht, wird dem benutzer das formular nochmal angezeigt, wobei die formularfelder mittels 'value' bereits mit seinen letzten eingaben vordefiniert sind. dies funktioniert ja bekanntlich nicht bei dateifeldern. daher wollte ich die datei mittels 'hidden' mitschleifen. aber irgendwie funktionert das nicht. stattdessen werden mir die daten als zeichen angezeigt....

hat jemand eine idee, wie ich die datei trotzdem mitschleifen kann???

vielen dank schon mal...

gruss

philipp

  1. Das Script speichert die Datei unter einem Temporär-Namen und nur der Pfad zur Temporären datei auf dem server wird per hidden weitergegeben.

    Peter

    1. ich lese die datei vorher aus mittels upload & übergebe dessen inhalt in das hidden-feld

    2. hi Peter,

      die Idee ist gut aber Ouh, wenn in der Zwischenzeit ein anderer Prozess kommt und glaubt, dort den richtigen Namen wiederzufinden hat er sich geiirt ;-)

      Machs besser mit einem Cookie.

      Rolf

      Das Script speichert die Datei unter einem Temporär-Namen und nur der Pfad zur Temporären datei auf dem server wird per hidden weitergegeben.

      Peter

      1. hallo rolf,

        kannst du das nochmal genauer erläutern? was soll ich ins coockie packen? den namen der temporären datei? wie komme ich an den namen?

        gruss

        philipp

        1. Hallo,

          was soll ich ins coockie packen? den namen der temporären datei?

          zum Beispiel (wobei ich doch ein Hidden-Feld bevorzugen würde).

          wie komme ich an den namen?

          http://www.perldoc.com/perl5.6/lib/File/Temp.html
          oder auch was selbstgestricktes beispielsweise mit http://www.perldoc.com/perl5.6/pod/func/rand.html.

          Grüße
            Klaus

          1. hallo klaus,

            vielen dank für die anregung. klingt super von der idee her, aber ich bekomme die umsetzung leider nicht hin.

            also ich habe ein uploadfeld mit dem namen datei.

            das lese ich im skript folgendermaßen aus:

            $dateiname=$cgi->param ('datei')

            wie bekomme ich jetzt die daten in eine temporäre datei???

            $dateiname=$dateiname."XXXX"

            $fh=tempfile ($dateiname);

            klappt irgendwie nicht....

            gruss

            philipp

            1. Halihallo red_or_dead

              $dateiname=$cgi->param ('datei')
              wie bekomme ich jetzt die daten in eine temporäre datei???

              $cgi->param('datei') liefert dir im string-Kontext den Namen der Datei, im Handle-
              Kontext ein Filehandle auf die Datei.

              my $upfilehandler = $cgi->param('datei');   # sowohl Name, als auch Handle!

              print "$upfilehandler"; # liefert Dateinamen

              Nun $upfilehandler als File-Handle

              binmode($upfilehandler);
              binmode($fh);  # temporary file
              while ( read( $upfilehandler, $data, 1024 ) ) {
                 print $fh $data;
              }

              $fh=tempfile ($dateiname);
              klappt irgendwie nicht....

              Was?

              Viele Grüsse

              Philipp

              --
              RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
              Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.