ich möchte wissen, ob ein Bild ein JPEG-Bild ist. Aber nicht nur anhand der Dateiendung, sondern mit größtmöglicher wahrscheinlichkeit.
Das mach ich so:
my $filehandle = $cgi->upload('foto');
my $buffer;
read($filehandle, $buffer, 2);
unless ($buffer eq "\xFF\xD8") {
die "Bild ist kein JPEG\n";
}
Warum ergibt die unless immer WAHR? Das ist doch alles korrekt!
wenn ich das Bild zuvor auf die Festplatte cache und dann nach open() die ersten Zeichen mit read(HANDLE, $buffer, 2) checke, dann klappt es!
Wo ist denn bitte der Unterschied zwischen:
read($filehandle, $buffer, 2)
-und-
read(FH, $buffer, 2)
?
Das Filehandle kommt von $cgi->upload('foto');
Es ist auch sicher ein Filehandle, sonst würde read() ja wie gewohnt meckern.\n\n
<!--EDIT|Froschpopo|1178696790-->