Problem mit Dateitypen beim Upload (image/jpeg)

Hallo,

ich lade per HTML Form eine Datei hoch und überprüfe mit PHP dann, ob es JPEG Bild ist oder nicht. Dies mache ich per : if($_FILES[‚filename‘][„type“] != ‚image/pjpeg‘). Dummerweise funktioniert das so nur im Internet Explorer, aber nicht unter Mozilla und Opera. Die verstehen das nur, wenn ich ‚image/jpeg‘ schreibe, also ohne „p“ vor dem „jpeg“.

Andersum versteht der Internet Explorer das dann nicht mehr!

Woran liegt das? Und wie kann ich das umgehen, ohne abzufragen, ob der Browser ein IE oder Mozilla/Opera ist?

Dank im voraus!

Daniel

Warum das genau passiert kann ich Dir leider auch nicht sagen, vermutlich liegt es aber daran, dass verschiedene Browser verschiedene html-tags anders interprätieren als andere…

Ich würde Dir vorschlagen, dass Du für Deine Version einfach ein logisches oder setzt…

if($_FILES[‚filename‘][„type“] != ‚image/pjpeg‘ || $_FILES[‚filename‘][„type“] != ‚image/jpeg‘))

falls Du das nicht so lösen willst und Du nicht zwangsläufig einen Test auf Grafiken brauchst würde sich auch anbieten, dass Du einfach den letzten punkt im dateinamen suchst und dir den reststring ausgeben lässt um diesen dann zur weiteren analoyse zu verwenden… allerdings bekommst Du dann das Problem dass jpeg und jpg anders gehandelt werden müssen… dafür kannst Du variabler auf andere Dateiformate wie z.B. png, bmp oder gif eingehen…

hoffe dass Dir damit geholfen ist

Hallo MunichFreak,

Ich würde Dir vorschlagen, dass Du für Deine Version einfach
ein logisches oder setzt…

if($_FILES[‚filename‘][„type“] != ‚image/pjpeg‘ ||
$_FILES[‚filename‘][„type“] != ‚image/jpeg‘))

mit dem logischen Oder machst du einen logischen Fehler. Beide Bedingungen müssten in diesem Fall mit && verknüpft werden, sonst wird nämlich die Bedingung immer erfüllt, es sei denn, es gäbe den Superbrowser, der die Daten auf beide Arten gleichzeitig sendet. Das logische Oder kannst du bei der Umkehrung deiner Bedingungen verwenden:

if($_FILES[‚filename‘][„type“] == ‚image/pjpeg‘ || $_FILES[‚filename‘][„type“] == ‚image/jpeg‘))

Liebe Grüße
Huttatta

mein Fehler. Hatte nicht gesehen dass != verwendet
wurde statt ==
Danke für die Korrektur