Cheatah: Upload nur bestimmter Dateitypen

Beitrag lesen

Hi,

Hallo, Danke für die schnelle Hilfe, die unten gelisteten Zeilen (cgi-sub innerhalb eines Perl-scriptes), lassen dennoch das Hochladen aller Dateitypen (.txt, .pl usw) zu.

hm, stimmt, zumindest Netscape scheint accept zu ignorieren. Schade eigentlich. Nun, dann gehen wir doch einfach mal an einen Syntax-Check:

&oops unless (("$buffer=~m/.jpg$/i") or ("buffer=~m/.jpeg$/i") or ("$buffer=~m/.gif$/i"));

"$buffer=~m/.xyz$/i" dürfte immer true sein, sofern "$/i" keinen Fehler erzeugt - Du hast da nämlich einen String angegeben, keine Regular Expression. Laß die Anführungszeichen weg.

( $extension = $filename ) =~ s/.*.// ;
if ( $extension !~ /(giftifjpgbmp)/i ) {&oops("Only image files (gif, tif, jpg, bmp) allowed") ;

Hm, das klingt für mich plausibel, wobei die Erzeugung von $extension IMHO suboptimal ist (ich bin auch nicht zu 100% sicher, daß sie funktioniert, bin aber zu faul, daß jetzt auszuprobieren *g*). Versuche es mit

$extension = (split(/./,$filename))[-1];
if ...

Oder aber:

$filename =~ /.([^.]+)$/;
if ($1 !~ /.../) ...

Cheatah