PHP: Bilder hochladen

starki

New member
Hallo Leute,

ich hab hier grad ein Problem: Ich möchte mit einem PHP-Skript Bilder hochladen, nur leider funktioniert das leider nicht ganz:

PHP:
<form enctype="multipart/form-data" action="save.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Bild hochladen: <input name="imagefile" type="file"><br />
<input type="submit" value="Hochladen">
</form>

PHP:
<?php
$datei = $_FILES['userfile']['name'];
echo "<br />Datei: ".$datei."<br />";
echo "<br />_FILES:file, tmpname: ".$_FILES['file']['tmp_name']."<br />";
echo "<br />_FILES:file, name: ".$_FILES['file']['name']."<br />";
$datei = str_replace(" ", "_", "$datei"); 
$datei = htmlentities($datei); // Mit leerzeichen -> _ hab ich auch noch nicht getestet, sollte aba klappen 
$dateityp = GetImageSize($_FILES['file']['tmp_name']); 
if($dateityp[2] != 0) 
   { 

   if($_FILES['file']['size'] <  2048000) //max. Größe in bytes 
      { 
      move_uploaded_file($_FILES['file']['tmp_name'], "images/$datei"); 

// Ab hier wird noch eine Thumbnail erstellt.  
                  $file2       = "images/$datei"; 
                  $target2    = "images/thumbnail-$datei"; 
                  $max_width   = "150"; //Thumbnailbreite 
                  $max_height   = "150"; //Thumbnailhöhe 
                  $quality     = "90"; //Thumbnailqualität 
                  $src_img     = imagecreatefromjpeg($file2); 
                  $picsize     = getimagesize($file2); 
                  $src_width   = $picsize[0]; 
                  $src_height  = $picsize[1]; 
                   
                  if($src_width > $src_height) 
                  { 
                  if($src_width > $max_width) 
                  { 
                    $convert = $max_width/$src_width; 
                    $dest_width = $max_width; 
                    $dest_height = ceil($src_height*$convert); 
                  } 
                  else 
                  { 
                    $dest_width = $src_width; 
                    $dest_height = $src_height; 
                  } 
                  } 
                  else 
                  { 
                  if($src_height > $max_height) 
                  { 
                    $convert = $max_height/$src_height; 
                    $dest_height = $max_height; 
                    $dest_width = ceil($src_width*$convert); 
                  } 
                  else 
                  { 
                    $dest_height = $src_height; 
                    $dest_width = $src_width; 
                  } 
                  } 
                  $dst_img = imagecreatetruecolor($dest_width,$dest_height); 
                  imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height); 
                  imagejpeg($dst_img, "$target2", $quality); 

                  unlink($file); 
                  echo "<img src=\"image/$datum-$userid.jpg\">"; 
                  } 

   else 
      { 
         echo "<center><b>Das Bild darf nicht größer als 2MB sein</b></center>"; 
      } 

    } 

else 
    { 
    echo "<center><b>Bitte nur Bilder hochladen!</b></center>"; 
    } 
?>

Das ist mein Quelltext bisher. Ich bekomme dauernd folgende Fehlermeldung:
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in /var/www/web1069/html/fb_app_onemillion/save.php on line 8

Kann mir jemand sagen, warum dauernd diese Fehlermeldung kommt. register_globals ist auf On gesetzt ...
 
PHP:
<input name="imagefile" type="file">

PHP:
$dateityp = GetImageSize($_FILES['file']['tmp_name']);

imagefile != file

PHP Manual schrieb:
Im Folgenden sind die Inhalte von $_FILES aus unserem Beispielskript aufgelistet. Beachten Sie, dass dies auf der Annahme basiert, dass der Name des Dateiuploads wie in dem obigen Beispielskript userfile ist. Es kann aber auch jeder andere Name genutzt werden.

Das sollte dir aber eigentlich schon auffallen, wenn bei der Ausgabe oben nichts kommt.
 
Der Fehler bleibt irgendwie trotzdem. Ich hab das alles geändert, den Namen der Datei erkennt er, aber bei tmp_name zeigt er immer noch leer an ...
 
Da kam ne 2 raus. Jetzt hab ich auch dadurch erst einmal die maximale Größe rausgenommen, die mach ich später wieder rein ...
 
Die Einheit bei MAX_FILE_SIZE ist Byte. Du darfst also nur Bilder hochladen die kleiner als 30kb sind (was nicht soo viel ist). Vielleicht lags ja daran...
 

Online-Statistiken

Zurzeit aktive Mitglieder
2
Zurzeit aktive Gäste
36
Besucher gesamt
38

Beliebte Forum-Themen

Zurück
Oben Unten