Wieso akzeptiert er nur *gif

Worka

Mitglied
Hallo Leute , habe ein bild upload was auf gif und jpg beschränkt sein soll,
klappt eigentlich sehr gut, nur bei jpg dateien sagt er immer den err[] string , nur wieso...

das hab ich ausprobiert

PHP:
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
$ext = substr($name,-4); 
 
if($type != "image/gif" && $type != "image/jpeg") 
    { 
        $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
    }
den auch :

PHP:
if($type != "image/gif" || $type != "image/jpeg" || $type != "image/pjpeg")

den hier auch

PHP:
if($type != "image/gif" || $type != "image/jpg")


hmm nur warum, mit gif bilder das einwandfrei und bei jpg... immer dieser blöde error satz :-(


WÄre nett eine Antwort zu bekommen.. Danke Stefan
 
Versuchs mal hier mit:
PHP:
<?php
$BildName = $_FILES['InputFeldName']['name'];

if(eregi("(jpg|gif|JPG|GIF)$",$Bildname)) {

// Bild hochladen

} else {

      echo "Es dürfen nur Bilder mit der Endung .gif oder .jpg hochgeladen werden.";

}
?>
 
Versuch' mal folgendes:
PHP:
<?php
  $tempname = $_FILES['file']['tmp_name']; 
  $name = $_FILES['file']['name']; 
  $type = $_FILES['file']['type']; 
  $size = $_FILES['file']['size']; 
  $ext = substr($name, strrpos($name, "."));

  $valid_types = array(
    "image/gif",
    "image/jpeg"
  );

  if( !in_array($type, $valid_types) ) {
    $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
  }

  if( !empty($err) ) {
    /* es sind Fehler aufgetreten */
  }
?>
 
Lass dir mal $type ausgeben....das wird wahrscheinlich nicht "image/jpg" sein, sondern z.B. "image/jpeg","image/pjpeg" oder etwas in der Richtung.

Versuch besser, einen RegExp auf $type anzuwenden:
Code:
if(!preg_match("/^image\/?(gif|jp?g)$/i",$type))
 {
 //...:oP
 }
 
Zuletzt bearbeitet:
Zurück