Cheatah: Fehler Sucher

Beitrag lesen

Hi,

ich habe das Upload Programm in Perl aus der Forum-Auslese mal ausprobiert. Ich habe es umgeschrieben damit man mehrere Variabeln übergeben kann, also auch noch den gewünschten Pfad. Jedoch ist nach dem Upload die Extension falsch :-( Statt *.txt steht dort *.tx oder statt *.gif steht dort *.gi usw.
Findet jmd. den Fehler ?

sicher doch :-)
Fangen wir aber mal lieber oben an:

#!/usr/bin/perl

#!/usr/bin/perl -w
use strict;

if($ENV{'REQUEST_METHOD'} eq 'GET')

Nix da. Dies stammt aus SelfHTML, ist aber (sorry, Stefan) komplette Schei*e. Ersetze diesen gesamten Teil durch

use CGI ':standard';

if("\L$Formular[$i*2]\E" eq "datei")  # Nick-Feld

[...]

Undurchschaubar, was das soll. Ich schätze mal, ein

my $Pfad = param('pfad');

liefert das gewünschte Ergebnis.

@Teile = split /----------------------------.{9}/, $Daten;

my @Teile, und außerdem richte Dich bitte den Upload betreffend nach

perldoc CGI

chop $Datei[1];

Und hier haben wir die Ursache für Deinen Fehler :-) Du verstehst es, wenn Du

perldoc -f chop

liest. Abhilfe zeigt Dir

perldoc -f chomp

open DATEI, ">$Pfad/$Datei[1]";

open ... or die "Kann $Pfad/$Datei[1] nicht schreiben: $!";

close DATEI;

... or die "Kann Datei nicht schliessen: $!";

print "Content-type: text/html\n\nUpload vollständig!";

print header, start_html('Upload komplett'), h1('Upload vollständig!'), end_html;

Merke: Die Zeiten von Perl 4 sind schon ein Weilchen vorbei... wir arbeiten mit Modulen und lexikalischen Variablen :-)

Cheatah