Thumbnails Problem

mit getimagesize kann man nicht die Datei Größe ermitteln, dafür müsstest du schon filesize benutzen.

Außerdem:

PHP:
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt ".$size." kb!";

Die Dateigröße wird in Bytes angegeben, für Kilobytes müsstest du ein wenig rechnen ;)
 
Zuletzt bearbeitet:
Ich habe jetzt nach deiner Fehlermeldung geschaut, und die kommt aufgrund der Dateigröße, weil du dort falsch programmiert hast.
 
Hi
Ok hab den Fehler, ich hatte $size 2mal definiert, aber nun hab ich schon wieder nen Fehler:
PHP:
Warning: getimagesize(874365-/var/www/web14/phptmp/php0MDoH9): failed to open stream: No such file or directory in /var/www/web14/html/img/upload.php on line 64

Warning: Division by zero in /var/www/web14/html/img/upload.php on line 70
ICh hoffe du kannst mir helfen, ich verzweifle schon :(
 
Ich glaube irgendwie das du eine andere Datei hast als ich, weil die Datei die du gepostet hast hat auf Zeile 70 was anderes stehen.
 
Ok, hier ist sie nochmal

PHP:
<?php 

$_UPLOAD_CONFIG = Array (		
'filetype' => Array ('image/jpg','image/jpeg','image/png','image/gif'), 
'max-size' => "4194304",             
'target'   => "image/"     # target folder for uploads		
);


if(isset($_POST['submit']))
{

$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name']; 
$rand = rand(0,1000000);

$type = $_FILES['file']['type']; 
$size = $_FILES['file']['size']; 

  $file =  ''.$rand.'-'.$_FILES['file']['tmp_name'].'';  
  $filename = ''.$rand.'-'.$_FILES['file']['tmp_name'].'';
  $size2 = getimagesize($_FILES['file']['tmp_name']); 

/////////////////////////////////////////////////////////////////////////////
function createThumb($file)
{
// Bilddaten feststellen 
  $size=getimagesize($file); 
  $breite=$size[0]; 
  $hoehe=$size[1]; 

  //hier die Breite festlegen 
  $neueBreite=150; 
  $neueHoehe=intval($hoehe*$neueBreite/$breite); 

  if($size[2]==1) { 
  // GIF 
  $altesBild=ImageCreateFromGIF($file); 
  $neuesBild=ImageCreate($neueBreite,$neueHoehe, "thumbs/"); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
  ImageGIF($neuesBild); 
  } 

  elseif($size[2]==2) { 
  // JPG 
  $altesBild=ImageCreateFromJPEG($file); 
  $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
  ImageJPEG($neuesBild, "thumbs/".$filename.""); 
  } 

  elseif($size[2]==3) { 
  // PNG 
  $altesBild=ImageCreateFromPNG($file); 
  $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe, "thumbs/"); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
  ImagePNG($neuesBild); 
  } 
  }
  
  function createImage($file)
  {
  // Bilddaten feststellen 
  $size=getimagesize($file); 
  $breite=$size[0]; 
  $hoehe=$size[1]; 

  //hier die Breite festlegen 
  $neueBreite=400; 
  $neueHoehe=intval($hoehe*$neueBreite/$breite); 

  if($size[2]==1) { 
  // GIF 
  $altesBild=ImageCreateFromGIF($file); 
  $neuesBild=ImageCreate($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
  ImageGIF($neuesBild, "img/".$filename.""); 
  } 

  elseif($size[2]==2) { 
  // JPG 
  $altesBild=ImageCreateFromJPEG($file); 
  $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
  ImageJPEG($neuesBild, "img/".$filename.""); 
  } 

  elseif($size[2]==3) { 
  // PNG 
  $altesBild=ImageCreateFromPNG($file); 
  $neuesBild=imagecreatetruecolor($neueBreite,$neueHoehe); 
  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
  ImagePNG($neuesBild, "img/".$filename.""); 
  } 
  }

	////////////////////////////////////////////////////////////////////////////

if(!in_array("".$type."", $_UPLOAD_CONFIG['filetype'])) { 
    $err[] = "Unerlaubtes Dateiformat!"; 
} 
if($size > $_UPLOAD_CONFIG['max-size']) { 
    $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt ".$size." kb!"; 
}  

if(empty($err)) { 
	
	if($size2[0] > '400')
	{
		createImage($file);	
	}
	else
	{
    copy($_FILES['file']['tmp_name'], $_UPLOAD_CONFIG['target'].'/'.$rand.'-'.$_FILES['file']['name']);
	createThumb($file);
    echo "Die Datei $name wurde erfolgreich hochgeladen!<br />"; 
	
	echo '<a href="'.$_UPLOAD_CONFIG['target'].'/'.$rand.'-'.$_FILES['file']['name'].'"><img src="thumbs/'.$filename.'" /></a>';
} 
}
else { 
    foreach($err as $error) 
    echo "$error<br>";
}

//$file =  $_UPLOAD_CONFIG['target'].'/'.$rand.'-'.$_FILES['file']['name'];  

}
else
{
echo '<form enctype="multipart/form-data" action="upload.php" method="post"> 
<input type="file" name="file"><br> 
<input type="submit" value="hochladen" name="submit"> 
</form>';
}

?>
 
Ich würde bei

PHP:
createImage($_FILES['file']['tmp_name']);

statt nur $file, weil sonst kann deine function nichts mit der Datei anfangen, weil sie ja noch nicht hochgeladen ist.
 
Und wieder ein Fehler :(
PHP:
Parse error: parse error, unexpected '[', expecting ')' in /var/www/web14/html/img/upload.php on line 61
 
Zurück