Създаване на Thumbnail при upload
Публикувана от smilev на January 12 2011 07:17:58

Разширена новина
[code]<?php
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Thumbnail Script</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
</head>
<body>
<center>
';
if(isset($_POST['upload'])){//долният код се изпълнява, когато е натиснат бутонът Изпрати
function upload_small($tmp_name,$file_type,$path_small){//upload с промяна на ширина и височина на картинката
if(!file_exists($path_small)){//проверка дали съществува файл със същото име
if($file_type=="image/pjpeg" or $file_type=="image/jpeg" or $file_type=="image/gif" or $file_type=="image/x-png" or $file_type=="image/png"){//проверка дали файлът е картинка
list($width,$height)=getimagesize($tmp_name);
define("WIDTH","150");//ширина 150 пиксела - тук може да промените 150 за ширина
define("HEIGHT","150");//височина 150 пиксела - тук може да промените 150 за дължина
if($width<WIDTH and $height<HEIGHT){//ако ширината и височината са по-малки от WIDTH и HEIGHT
move_uploaded_file($tmp_name,$path_small);
}elseif($width>=WIDTH){//ако ширината е по-голяма или равна на WIDTH
$new_width= WIDTH;//задаване на нова ширина
$new_height= (int) ($height*$new_width)/$width;//задаване на нова височина
//избиране на функцията за разчитане на картинката
if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){
$imagecreatefrom="imagecreatefromjpeg";
}elseif($file_type=="image/gif"){
$imagecreatefrom="imagecreatefromgif";
}elseif($file_type=="image/x-png" or $file_type=="image/png"){
$imagecreatefrom="imagecreatefrompng";
}
//край на избиране на функцията за разчитане на картинката
$image_p=imagecreatetruecolor($new_width, $new_height);//създаване на нова картинка с новите размери
$image=$imagecreatefrom($tmp_name);//разчитане на оригиналната картинка
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);//създаване на малката картинка
imagejpeg($image_p, $path_small, 100);//записване на малката картинка с качество 100
}elseif($height>=HEIGHT){//ако височината е по-голяма или равна на HEIGHT
$new_height= HEIGHT;//задаване на нова височина
$new_width= (int) ($width*$new_height)/$height;//задаване на нова ширина
//избиране на функцията за разчитане на картинката
if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){
$imagecreatefrom="imagecreatefromjpeg";
}elseif($file_type=="image/gif"){
$imagecreatefrom="imagecreatefromgif";
}elseif($file_type=="image/x-png" or $file_type=="image/png"){
$imagecreatefrom="imagecreatefrompng";
}
//край на избиране на функцията за разчитане на картинката
$image_p=imagecreatetruecolor($new_width, $new_height);//създаване на нова картинка с новите размери
$image=$imagecreatefrom($tmp_name);//разчитане на оригиналната картинка
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);//създаване на малката картинка
imagejpeg($image_p, $path_small, 100);//записване на малката картинка с качество 100
}
}else{ echo 'Файлът не е картинка!'; exit; }
}else{ echo 'Такъв файл вече съществува!'; exit; }
}
define("URL","http://www.site.com/");//дефинираме адреса на сайта до първата папка images с / накрая
$file_name=$_FILES['ufile']['name'];//името на картинката
$tmp_name=$_FILES['ufile']['tmp_name'];//път до временното положение на картинката
$file_type=$_FILES['ufile']['type'];//тип на картинката
$path_small="images/thumbs/".basename(strtolower($file_name));//път за upload на малката картинка с малки букви
upload_small($tmp_name,$file_type,$path_small);//upload на малката картинка
//тук показваме картинката и адреса й и използваме дефинирания по-горе URL
echo '<br><img src="'.$path_small.'" alt=""><br>';
echo '<br>'.URL.$path_small.'<br>';
//край на показване картинката и адреса им
}else{
if(!function_exists("gd_info")){//проверка за GD библиотека
echo 'GD Graphics Library не е инсталирана на този сървър!';
}else{
echo '
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="ufile"><br>
<input type="submit" name="upload" value="Изпрати">
</form>
';
}
}
echo '
</center>
</body>
</html>
';
?>
[/code]