Hi,
habe ein PHP-Skript gefunden, dass es ermöglicht Bilder auf den FTP-Server hochzuladen und direkt anzeigen zu lassen. Dies funktioniert mit dem Bild in richtiger Größe so wie es sein soll, aber das Thumbnail, dass dazu erzeugt und hochgeladen werden soll, funktioniert nicht. Hat jemand eine Idee, was daran falsch ist?
Die richtigen Ordner sind angegeben und die Bildgrößen-Beschränkungen etwas runtergesetzt, ansonsten wurde am Skript nichts geändert.
Gruß, Marco
<html>
<head>
<title>Upload</title>
</head>
<body>
<?
if($action){
// --------------------------------
// Diverse Variablen
// --------------------------------
$path = "images/typen/"; // Url zum Speicherordner der großen Bilder
$thumb_path = "images/typen/thumb/"; // Url zum Speicherordner der Vorschaubilder
$config_width = "320"; // Bildbreite max. bei großem Bild
$config_height = "240"; // Bildhöhe max. bei großem Bild
$config_thumb_width = "80"; // Bildbreite max. bei Vorschaubild
$config_thumb_height = "60"; // Bildhöhe max. bei Vorschaubild
$resizequality = "70"; // Bildkompressionsrate 0-100
$deindomain = "http://www.maxrev.de/"; // unsere Domain
if ($HTTP_POST_FILES['userfile']['tmp_name']<> 'none')
{
// --------------------------------
// Get File Upload Info
// --------------------------------
$filename = $HTTP_POST_FILES['pic_file']['name'];
$filetype = $HTTP_POST_FILES['pic_file']['type'];
$filetmp = $HTTP_POST_FILES['pic_file']['tmp_name'];
// --------------------------------
// Check file type
// --------------------------------
switch ($filetype)
{
case 'image/jpeg':
case 'image/jpg':
case 'image/pjpeg':
$pic_filetype = '.jpg';
break;
case 'image/png':
case 'image/x-png':
$pic_filetype = '.png';
break;
case 'image/gif':
$pic_filetype = '.gif';
break;
default:
die("Falsches Dateiformat. Nur JPEG, GIF oder PNG erlaubt!");
}
// --------------------------------
// Generate filename
// --------------------------------
srand((double)microtime()*1000000); // for older than version 4.2.0 of PHP
do
{
$pic_filename = md5(uniqid(rand())) . $pic_filetype;
}
while( file_exists($path . $pic_filename) );
// --------------------------------
// Move this file to upload directory
// --------------------------------
$ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
if ( @$ini_val('open_basedir') != '' )
{
if ( @phpversion() < '4.0.3' )
{
die("open_basedir is set and your PHP version does not allow move_uploaded_file<br /><br />Please contact your server admin");
}
$move_file = 'move_uploaded_file';
}
else
{
$move_file = 'copy';
}
$move_file($filetmp, $path . $pic_filename);
@chmod($path . $pic_filename, 0777);
// --------------------------------
// Well, it's an image. Check its image size
// --------------------------------
$pic_size = getimagesize($path . $pic_filename);
$pic_width = $pic_size[0];
$pic_height = $pic_size[1];
// --------------------------------
// This image is okay, we can cache its thumbnail now
// --------------------------------
if($pic_filetype != '.gif')
{
$gd_errored = FALSE;
switch ($pic_filetype)
{
case '.jpg':
$read_function = 'imagecreatefromjpeg';
break;
case '.png':
$read_function = 'imagecreatefrompng';
break;
}
$src = @$read_function($path . $pic_filename);
if (!$src)
{
$gd_errored = TRUE;
$pic_thumbnail = '';
}
else if( ($pic_width > $config_thumb_width) or ($pic_height > $config_thumb_height) )
{
// Resize it
if ($pic_width > $pic_height)
{
$thumbnail_width = $config_thumb_width;
$thumbnail_height = $config_thumb_width * ($pic_height/$pic_width);
}
else
{
$thumbnail_height = $config_thumb_height;
$thumbnail_width = $config_thumb_height * ($pic_width/$pic_height);
}
$thumbnail = @imagecreatetruecolor($thumbnail_width, $thumbnail_height);
$resize_function = 'imagecopyresampled';
@$resize_function($thumbnail, $src, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);
}
else
{
$thumbnail = $src;
}
if (!$gd_errored)
{
$pic_thumbnail = $pic_filename;
// Write to disk
switch ($pic_filetype)
{
case '.jpg':
@imagejpeg($thumbnail, $thumb_path . $pic_thumbnail, $resizequality);
break;
case '.png':
@imagepng($thumbnail, $thumb_path . $pic_thumbnail);
break;
}
@chmod($thumb_path . $pic_thumbnail, 0777);
} // End IF $gd_errored
} // End Thumbnail Cache
// --------------------------------------
// OK lets resize the original picture
// --------------------------------------
if($pic_filetype != '.gif')
{
$gd_errored = FALSE;
switch ($pic_filetype)
{
case '.jpg':
$read_function = 'imagecreatefromjpeg';
break;
case '.png':
$read_function = 'imagecreatefrompng';
break;
}
$src = @$read_function($path . $pic_filename);
if (!$src)
{
$gd_errored = TRUE;
$pic_resize = '';
}
else if( ($pic_width > $config_width) or ($pic_height > $config_height) )
{
// Resize it
if ( (($pic_width / $pic_height) > ($config_width / $config_height)) )
{
$resize_width = $config_width;
$resize_height = $config_width * ($pic_height/$pic_width);
}
else
{
$resize_height = $config_height;
$resize_width = $config_height * ($pic_width/$pic_height);
}
$resize = @imagecreatetruecolor($resize_width, $resize_height);
$resize_function = 'imagecopyresampled';
@$resize_function($resize, $src, 0, 0, 0, 0, $resize_width, $resize_height, $pic_width, $pic_height);
}
else
{
$resize = $src;
}
if (!$gd_errored)
{
$pic_resize = $pic_filename;
// Write to disk
switch ($pic_filetype)
{
case '.jpg':
@imagejpeg($resize, $path . $pic_resize, $resizequality);
break;
case '.png':
@imagepng($resize, $path . $pic_resize);
break;
}
@chmod($path . $pic_resize, 0777);
} // End IF $gd_errored
} // End Picture Resize
echo "Datei ist auf dem Server! <br><br>";
echo "Url des großen Bildes: <a href="$deindomain$path$pic_filename" target="_blank">".$deindomain.$path.$pic_filename;
echo "</a> <br><img src="$deindomain$path$pic_filename"><br><br>";
echo "Url des Vorschaubildes: <a href="$deindomain$thumb_path$pic_filename" target="_blank">".$deindomain.$thumb_path.$pic_filename;
echo "</a> <br><img src="$deindomain$thumb_path$pic_filename">";
}
} else { ?>
<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">
<input type="hidden" name="MAX_FILE_SIZE" value="4000000">
<br>
<strong>File Upload</strong> <br>
<br>
<input name="pic_file" type="file" size=40>
<br>
<br>
<input type="submit" name="action" value="Speichern">
</form>
<?
}
// -----------------------------------------
// Das Script kann unter Verwendung
// dieses Vermerks uneingeschränkt
// genutzt / verändert werden.
// © www.marc-gutt.de http://www.abakus-internet-marketing.de/outbound.pl?http://www.marc-gutt.de
// -----------------------------------------
?>
</body>
</html>