Ура! получилось!
вот код:
<?
if (!isset($_FILES['att']))
{
echo "<p>Максимальный размер файла не должен привышать 500 кб!</p>";
echo <<<HERE
<p><form enctype='multipart/form-data' method=post>
<input type="file" size="50" name="att" class=input><br>
<input class=button type=submit value='Загрузить'>
</form></p>
HERE;
}
else
{
$src = $_FILES['att']['name'];
$ex = explode(".",$src);
if (substr($_FILES['att']['type'],0,5) == 'image')
{
if (copy($_FILES['att']['tmp_name'],
"files/".$_SESSION['user'].".".$ex[1]))
{
// Уничтожаем файл во временном каталоге
unlink($_FILES['att']['tmp_name']);
// Изменяем права доступа к файлу
chmod("files/".$_SESSION['user'].".".$ex[1], 0644);
}
$ava = $_SESSION['user'].".".$ex[1];
$result=mysql_query("UPDATE userlist SET ava='$ava' WHERE id='".$_SESSION['id_user']."'");
if ($result)
{
echo "<p>Фото загружено!!!";
$dest = $_SESSION['user'].".".$ex[1];
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100)
{
if (!file_exists($src)) return false;
$size = getimagesize($src);
if ($size === false) return false;
// Определяем исходный формат по MIME-информации, предоставленной
// функцией getimagesize, и выбираем соответствующую формату
// imagecreatefrom-функцию.
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
$icfunc = "imagecreatefrom" . $format;
if (!function_exists($icfunc)) return false;
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0,
$new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, $dest, $quality);
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
if (img_resize('files/'.$_SESSION['user'].'.'.$ex[1].'', 'files/'.$_SESSION['user'].'.'.$ex[1].'', 500, 600))
echo 'Image resized OK';
else
echo 'Resize failed!';
}
}
else { echo "<p>Данный формат не является графическим!!!<br><a href='update.php'>Повторить</a>"; exit(); }
}
?>
кто может сделать что бы сжималось пропорцианально?
вот кад пропорциональности:
list($width, $height, $type, $attr) = getimagesize($img);
if($width > $height) $dif = $width / 100; $width = 100; $height = $height / $dif;
else $dif = $height / 100; $height = 100; $width = $width / $dif;
echo "< img src='".$img."' width = '".$width."' height='".$height."' />";
ток я незнаю как его применить! помогите пожалуйста...
|