Falscher Header

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich benütze dieses Upload Script, für die Bilder:

PHP:
<?php
if(isset($_POST["upload_title"]))
    {

// Variabeln festlegen
$max_byte_size = 1048576;
$allowed_types = "(jpg|jpeg|gif|png)";

// Formular wurde abgeschickt
if($_POST["upload_title"] == "Hochladen") { 

// Wurde wirklich eine Datei hochgeladen?
if(is_uploaded_file($_FILES["file"]["tmp_name"])) {

// Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {

// Datei auch nicht zu groß
if($_FILES["file"]["size"] <= $max_byte_size) {

//Ob die Datei Leerzeichen enthält
if(!preg_match('/[^0-9a-zA-Z-_.]/', $_FILES["file"]["name"])){

//Image Header Überprüfen (MIME HEADER)
if(
$_FILES["file"]["type"] == "image/jpeg" OR 
$_FILES["file"]["type"] == "image/pjpeg" OR 
$_FILES["file"]["type"] == "image/gif" OR 
$_FILES["file"]["type"] == "image/png"
) 
{

$size = $_FILES["file"]["size"];
// Alles OK -> Datei kopieren

include("resize.php");

scaleimage2(150);


$name = "./fotoalbum/$id/".$time."_".$_FILES["file"]["name"];

$name2 = $time."_".$_FILES["file"]["name"];


$typ = $_FILES["file"]["type"];

if(move_uploaded_file($_FILES["file"]["tmp_name"], $name)) {

$insert_titel = mysql_query("UPDATE `fotoalbum` SET `titelbild` = '$name2' WHERE `id` = '$id'") OR DIE(mysql_error());


echo '<p>';
echo '<div align="center"><b>Titelbild erfolgreich hochgeladen!</b><p>';
echo '<b><a href="fotoalbum-'.$benutzername_section.'.html"> << Zur Übersicht>> </a></b></div>';

}
else {

echo "<div class=\"error\">Datei konnte nicht hochgeladen werden.</div>";

}

} 
else {
    echo "<div class=\"error\">Das Bild muss folgende Endung haben: jpg, jpeg, gif, oder png!</div>";
} 

}
else {
    echo '<div class="error">Das Bild darf keine Leerzeichen enthalten!</div>';
}

}
else {

echo "<div class=\"error\">Die Datei darf nur eine Größe von 1 Megabyte (mb) besitzen.</div>";

}


}
else {

echo "<div class=\"error\">Die Datei besitzt eine ungültige Endung.</div>";

}

}
else {

echo "<div class=\"error\">Keine Datei zum Hochladen angegeben.</div>";

}

}
else {

echo "<div class=\"error\">Bitte benutzen Sie das Upload Formular.</div>";

}

}


?>


Im Firefox funktioniert das ganz super, aber beim Internet Explorer kommt immer diese Meldung:
Das Bild muss folgende Endung haben: jpg, jpeg, gif, oder png!

Das Bild hat aber diese Endung.


Diese Fehlermeldung enststeht durch das:
PHP:
//Image Header Überprüfen (MIME HEADER)
if(
$_FILES["file"]["type"] == "image/jpeg" OR 
$_FILES["file"]["type"] == "image/pjpeg" OR 
$_FILES["file"]["type"] == "image/gif" OR 
$_FILES["file"]["type"] == "image/png"
) 
{

Was habe ich falsch gemacht?

Danke!
 
Versuchs mal mit image/jpg.

Weiterhin solltest du dich nicht auf die Prüfung des Dateityps verlassen, denn was hindert mich daran, eine beliebige Datei in .jpg umzubenennen?

Benutze lieber [phpf]getimagesize[/phpf] und davon den Dateitypen. Dieser gibt auch false zurück, falls es kein richtiges Bild ist.
 
Zurück