$xNeTworKx: Uploadscript zerstört Grafiken (Nachtrag)

Beitrag lesen

Hallo,

Dann habe ich mal das Ganze mit dem IE getestet, aber dieser Bug Browser speichert nicht mal die Daten. Wenn ich ins Errorlog sehe, sieht man folgendes :
[Sat Jul 13 12:07:58 2002] [error] [client 255.255.255.255] [Sat Jul 13 12:07:58 2002] c:\apache\forum\UPLOAD~1.CGI: Cant save C:\Dokumente und Einstellungen\Markus Pitha\Desktop\screenshots\snap00002.jpg : Invalid argument

Ist das eine von Dir generierte Fehlermeldung?

Die Meldung steht in der Errorlog, oder am Bildschirm (falls ich CGI::Carp verwende), wenn ich versuche mit dem IE upzuloaden (sowohl lokal, als auch wenn ich das Script vom Webspace ausführe
)

Wenn ja, verwendest Du den Filenamen, den der Browser mitsendet?

Ehmmm ? Da weis ich jetzt nicht genau was du meinst ?

Wenn ja, hast Du überprüft, ob eventuell auch der Pfad der Datei mitgesendet wird und diesen gegebenenfalls abgeschnitten?
Wenn nein, solltest Du es tun.

Außerdem ist es unwahrscheinlich, daß der Webserver Zugriff auf das angegebene Verzeichnis hat, da er sicherlich unter einem anderen Useraccount als 'Markus Pitha' arbeitet.

Am Webserver ist genau das gleiche Problem.
P.S Ausserdem habe ich schon wieder ein neues Problem.
Wenn das File am Server schon exisitert, ändere ich das Hochgeladene so:

my $flyermain = '';

if ($$flyer =~ /^(.+?).[a-zA-Z]{3}$/)  {
$flyermain = $1;
}

while (-e "flyer/$$flyer")  {
     $counter++;
     $$flyer =~ s/^.+?(.[a-zA-Z]{3})$/$flyermain$counter$1/;
     }

Es wird zwar richtig weiternummeriert, nur ist diese Grafik dann auch kaputt (haben Größe 0), aber wenigstens funktioniert zumindest mal das durchnummerieren.

Was ich noch vergessen habe:
Es wurde mir ja empfohlen Image:Size zu verwenden, und ganz sicher zu gehen, daß es auch wirklich eine Grafik ist, aber wenn ich es so verwende :

my($x,$y) = imgsize("$$flyer");
   if (!($x || $y))  {
   $$error = "<li>Die Breite und Höhe der Grafik kann nicht erkannt werden. Die Datei wird aus Sicherheitsgründen abgelehnt.</li>\n";
   }

erscheint immer die von mir generierte Fehlermeldung ?