Bilder Upload-Script

  • Themenstarter Themenstarter McNiko
  • Beginndatum Beginndatum
Aso mein Fehler, jetzt klappt soweit alles aber würde gerne noch wissen warum der bei einem .gif keine Fehlermeldung wie im Script angegeben ausgit sondern:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in ... on line 69

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'images/userbild/1.jpg' is not a valid JPEG file in ... on line 69

Warning: imagecopyresized(): supplied argument is not a valid Image resource in ... on line 71

Warning: imagecopyresized(): supplied argument is not a valid Image resource in ... on line 74
Dein Bild wurde erfolgreich hochgeladen!


Das Script sieht jetzt so aus:
PHP:
<?

include("verbindung.php");

$szMySQL = "UPDATE user SET Userbild = 'images/userbild/".$_SESSION['userid'].".jpg' WHERE UserID = '".$_SESSION['userid']."'";



$result = mysql_query($szMySQL);

if (!$result) {
   echo "Anfrage ($szMySQL) konnte nicht ausgeführt werden : " . mysql_error();
   exit;
}

# Extension

include("verbindung.php");

# SQL Code in einer obligatorischen Variable

$szMySQL = "SELECT * FROM user WHERE username='".$_SESSION['username']."' ORDER BY UserID DESC";

$sqlErgebnis = mysql_query($szMySQL);

# Ausgabe

while($sqlRowMySQL = mysql_fetch_object($sqlErgebnis))
{

$dateityp = GetImageSize($_FILES['datei1']['tmp_name']);
if($dateityp[2] != 0)
   {

   if($_FILES['datei1']['size'] <  1048576)
      {
      move_uploaded_file($_FILES['datei1']['tmp_name'], "images/userbild/$sqlRowMySQL->UserID.jpg".$_FILES['']);

# Dateigröße bestimmen!

$echtdatei = 'images/userbild/'.$_SESSION['userid'].'.jpg';
$bildpfad_small = "images/userbild/small/";
$dateiname = ''.$_SESSION['userid'].'.jpg';
$function_image_create = "ImageCreateFromJpeg";
$function_image_new = "ImageJpeg";
$size = getimagesize("$echtdatei"); 
$breite = $size[0];
$hoehe = $size[1]; 
if ($breite >= 801) $neueBreite01 = 800;
if ($breite <= 800) $neueBreite01 = $breite;
$neueHoehe01 = intval($hoehe*$neueBreite01/$breite); 
if ($breite >= 151) $neueBreite02 = 150;
if ($breite <= 150) $neueBreite02 = $breite;
$neueHoehe02 = intval($hoehe*$neueBreite02/$breite); 
$altesBild=$function_image_create("$echtdatei"); 
$neuesBild01=ImageCreateTrueColor($neueBreite01,$neueHoehe01); 
ImageCopyResized($neuesBild01,$altesBild,0,0,0,0,$neueBreite01, $neueHoehe01,$breite,$hoehe); 
$function_image_new($neuesBild01,"$echtdatei");
$neuesBild02=ImageCreateTrueColor($neueBreite02,$neueHoehe02); 
ImageCopyResized($neuesBild02,$altesBild,0,0,0,0,$neueBreite02, $neueHoehe02,$breite,$hoehe); 
$function_image_new($neuesBild02,"$bildpfad_small"."$dateiname");  

      echo "Dein Bild wurde erfolgreich hochgeladen!<br><br><meta http-equiv=\"refresh\" content=\"25; URL=user.php?UserID=".$_SESSION['userid']."\">";
      }

   else
      {
         echo "Das Bild darf nicht größer als 1MB sein<br><br>";
      }

    }

else
    {
    echo "Bitte nur Bilder im .jpg Format hochladen<br><br>";
    }

}

?>

mfg

nochmal danke
 
Hallo,

du liesst zwar mit "GetImageSize" u.a. den Dateityp aus, wertest aber das Array
nur auf vorhandensein (!=0) in deinem Code
PHP:
if($dateityp[2] != 0)
aus, nicht aber den Dateityp (JPG z.B. hat in dem Array den Wert 2).
Ich muß aber direkt dabei sagen, das ich schon die lustigsten Ergebnisse
mit dieser Prüfmethode erlebt habe, da manche PHP-/GD-Versionen recht
merkwürdige Ausgaben bringen.
Da du aber nur auf einen Wert ungleich 0 testest, läuft das Script weiter.

Gruss
Mofu
 
Zurück