Hallöchen,
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 ?
Gruß, Daniel
---------------
#!/usr/bin/perl
#binmode STDIN;
#read STDIN, $Daten, $ENV{'CONTENT_LENGTH'};
if($ENV{'REQUEST_METHOD'} eq 'GET')
{
$Daten = $ENV{'QUERY_STRING'}
}
else
{
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
}
@Formularfelder = split(/&/, $Daten);
foreach $Feld (@Formularfelder)
{
($name, $value) = split(/=/, $Feld);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.\n)*-->//g;
$Formular[$i] = $name;
$i = $i + 1;
$Formular[$i] = $value;
$i = $i + 1;
$AnzahlFelder = $AnzahlFelder + 1;
}
for ($i=0;$i<$AnzahlFelder;$i++)
{
if("\L$Formular[$i*2]\E" eq "datei") # Nick-Feld
{
$Daten = $Formular[$i*2+1];
}
if("\L$Formular[$i*2]\E" eq "pfad") # Nick-Feld
{
$Pfad = $Formular[$i*2+1];
}
}
@Teile = split /----------------------------.{9}/, $Daten;
@Datei = split /\n/, $Teile[1], 5;
while ($Datei[1] =~ /\/) { $Datei[1] =~ s/^.*\//; }
$Datei[1] =~ s/"//;
chop $Datei[1];
chop $Datei[4]; chop $Datei[4];
open DATEI, ">$Pfad/$Datei[1]";
binmode DATEI;
print DATEI $Datei[4];
close DATEI;