Загрузка и обработка картинок
- <?php
- function img_resize( $tmpname, $size, $save_dir, $save_name )
- {
- $save_dir .= ( substr($save_dir,-1) != "/") ? "/" : "";
- $gis = GetImageSize($tmpname);
- $type = $gis[2];
- switch($type)
- {
- case "1": $imorig = imagecreatefromgif($tmpname); break;
- case "2": $imorig = imagecreatefromjpeg($tmpname);break;
- case "3": $imorig = imagecreatefrompng($tmpname); break;
- default: $imorig = imagecreatefromjpeg($tmpname);
- }
- $x = imageSX($imorig);
- $y = imageSY($imorig);
- if($gis[0] <= $size){
- $av = $x;
- $ah = $y;
- } else {
- $yc = $y*1.3333333;
- $d = $x>$yc?$x:$yc;
- $c = $d>$size ? $size/$d : $size;
- $av = $x*$c; //высота исходной картинки
- $ah = $y*$c; //длина исходной картинки
- }
- $im = imagecreate($av, $ah);
- $im = imagecreatetruecolor($av,$ah);
- if (imagecopyresampled($im,$imorig , 0,0,0,0,$av,$ah,$x,$y))
- if (imagejpeg($im, $save_dir.$save_name))
- return true;
- else
- return false;
- }
- $uploaddir = './fls/';
- if(empty($_POST)){
- echo '<div><form action="" method="post" enctype="multipart/form-data"><input type="file" name="uploadfile" /><br/>
- <input type="submit" name="send" value="Отправить!"/></form></div>';
- } else {
- $type = $_FILES['uploadfile']['type'];
- if($type == "image/gif" or $type == "image/png" or $type == "image/jpeg") {
- echo "<h4>Допустимый формат файла</h4>";
- } else {
- echo "<h4>Недопустимый формат файла</h4>";
- exit;
- }
- if(!is_dir($uploaddir)) {
- mkdir($uploaddir,0777,TRUE);
- }
- $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
- if(copy($_FILES['uploadfile']['tmp_name'], $uploadfile)) {
- echo "<h4>Файл успешно загружен на сервер</h4>";
- } else {
- echo "<h4>Произошла ошибка! Не удалось загрузить файл на сервер!</h4>";
- exit;
- }
- $name_orig = basename($_FILES['uploadfile']['name']);
- $date = date("YmdHis");
- $id = '666'; // индификатор чего угодно (user || count) //
- if(isset($_POST['send']))
- {
- $tmpname = $_FILES['uploadfile']['tmp_name'];
- @img_resize( $tmpname , 300 , $uploaddir , $name_orig."_".$date."_".$id.".jpg");
- @img_resize( $tmpname , 120 , $uploaddir , $name_orig."_".$date."_".$id."_small.jpg");
- @img_resize( $tmpname , 60 , $uploaddir , $name_orig."_".$date."_".$id."_verysmall.jpg");
- }
- else {
- echo "Обрабатывать нечего";
- }
- }
- ?>
Загружает картинку, сохраняет оригинал и три превьюшки разного размера. Думаю найдется у кого применение данному решению, функция найдена на просторах интернета