Hallo, hab nen ganz einfaches Thumbscript, welches auch so funktioniert wie es soll, ausser das Bild ist zu groß.
Bei ca. 1mb bildgröße wird zwar das bild hochgeladen und an den richtigen ort gebracht, aber das thumb wird nicht erstellt.
Leider spuckt er auch keine Fehlermeldung aus, der bildschirm bleibt weiß.
Laut phpinfo hab ich:
-PHP Version 5.2.11
-post_max_size 8M
-upload_max_filesize 2M
-GD Version bundled (2.0.34 compatible)
Und jetzt bin ich völlig verwirrt.
Bild1 = 1,46mb jpg funktioniert nicht
Bild2 = 3,10mb jpg funktioniert???
Hier mal der Code:
Bei ca. 1mb bildgröße wird zwar das bild hochgeladen und an den richtigen ort gebracht, aber das thumb wird nicht erstellt.
Leider spuckt er auch keine Fehlermeldung aus, der bildschirm bleibt weiß.
Laut phpinfo hab ich:
-PHP Version 5.2.11
-post_max_size 8M
-upload_max_filesize 2M
-GD Version bundled (2.0.34 compatible)
Und jetzt bin ich völlig verwirrt.
Bild1 = 1,46mb jpg funktioniert nicht
Bild2 = 3,10mb jpg funktioniert???
Hier mal der Code:
PHP-Code:
error_reporting(E_ALL);
$edit=$_POST['edit'];
$file=$_POST['bild'];
$Bild_Titel=$_POST['Titel'];
$Error=0;
$infos = getimagesize($_FILES['userfile']['tmp_name']);
//Fehlercode überprüfen
if($_FILES['userfile']['error']>0)
{
echo'Problem: ';
switch($_Files['userfile']['error'])
{
case 1:$Error='Datei ist zu groß(Standard)'; break;
case 2:$Error='Die Datei ist zu groß(Admin festgelegte größe)'; break;
case 3:$Error='Dateiupload unvollständig'; break;
case 4:$Error='Keine Datei wurde hochgeladen'; break;
echo $Error;
}
exit;
}
//Prüfen ob Bilddatei
$typ=array("image/gif","image/png","image/jpg","image/jpeg");
if(!in_array($_FILES['userfile']['type'],$typ))//für Bilddatei statt "image/gif" = "image/jpeg"(auch mime-typen genannt)
{
$Error='Die hochgeladene Datei ist keine Bilddatei!Bitte andere Datei hochladen';
echo $Error;
exit;
}
//Name überpfrüfen
$i=1;
while(file_exists('../../Galerie/'.$_FILES['userfile']['name']))
{
$_FILES['userfile']['name']=$_FILES['userfile']['name'].'_'.$i;
$i++;
}
//Datei verschieben
$upload='../../Galerie/'.$_FILES['userfile']['name'];
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
if(!move_uploaded_file($_FILES['userfile']['tmp_name'],$upload))
{
$Error='Datei konnte nicht verschoben werden';
echo $Error;
exit;
}
}
else
{
$Error='Problem beim Hochladen';
echo $Error;
exit;
}
//Type abfangen
/* $filetype = $_FILES[$userfile_name]['type'];
switch($filetype)
{
case "image/pjpeg":
$infos[2] = 2;
break;
case "image/gif":
$infos[2] = 1;
break;
case "image/jpeg":
$infos[2] = 2;
break;
case "image/x-png":
$infos[2] = 3;
break;
//usw.
}
*/
$thumb='../../Galerie/thumbs/'.$_FILES['userfile']['name'];
$file_name='../../Galerie/'.$_FILES['userfile']['name'];
resize($file_name, $thumb, 150, $infos);
/*Thumb erstellen*/
function setTransparency($new_image,$image_source)
{
$transparencyIndex = imagecolorallocate($new_image, 255, 255, 255);
imagefill($new_image, 0, 0, $transparencyIndex);
imagecolortransparent($new_image, $transparencyIndex);
}
function resize($file, $save, $width, $infos, $height=false)
{
if(!$height)
$height = $width;
$iWidth = $infos[0];
$iHeight = $infos[1];
$iRatioW = $width / $iWidth;
$iRatioH = $height / $iHeight;
if($iRatioW < $iRatioH)
{
$iNewW = $iWidth * $iRatioW;
$iNewH = $iHeight * $iRatioW;
}
else
{
$iNewW = $iWidth * $iRatioH;
$iNewH = $iHeight * $iRatioH;
}
if($infos[2] == 1)
$imgA = @imagecreatefromgif($file);
elseif($infos[2] == 2)
$imgA = @imagecreatefromjpeg($file);
elseif($infos[2] == 3)
$imgA = @imagecreatefrompng($file);
$imgB = @imagecreatetruecolor($iNewW, $iNewH);
if(!$imgB)
$imgB = @imagecreate($iNewW, $iNewH);
if($infos[2] == 1)
setTransparency($imgB,$imgA);
elseif($infos[2] == 3){
imagealphablending($imgB, false);
imagesavealpha($imgB, true);
}
if(!@imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]))
@imagecopyresized($imgB, $imgA, 0, 0, 0, 0, $iNewW, $iNewH, $infos[0], $infos[1]);
$re = null;
umask(0000);
if($infos[2] == 1)
$re = imagegif($imgB, $save);
elseif($infos[2] == 2)
$re = imagejpeg($imgB, $save, 100);
else
$re = imagepng($imgB, $save);
return true;
}
?>
Kommentar