if($_POST['avatar']) { $data = $_POST['avatar']; $crc = md5(serialize($data)); if(!$_SESSION['crc'][$crc] || 1) { $path = $data['path']; $src = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].$path); $w = imagesx($src); $h = imagesy($src); if($w) { $new = imagecreatetruecolor(200, 130); imagecopyresampled($new, $src, 0, 0, $data['x1'], $data['y1'], 200, 130, $data['x2']-$data['x1'], $data['y2']-$data['y1']); imageJpeg($new, $_SERVER['DOCUMENT_ROOT'].$path, 100); $arFile = Array( "name" => "1.jpg", "size" => filesize($_SERVER['DOCUMENT_ROOT'].$path), "tmp_name" => $_SERVER['DOCUMENT_ROOT'].$path, ); $file_id = CFile::SaveFile($arFile); CIBlockElement::SetPropertyValueCode($_GET['id'], "SIMILAR_PREVIEW", $file_id); } //$_SESSION['crc'][$crc] = true; } } if($_FILES['pic']): $file = $_FILES['pic']; $path = $_SERVER["DOCUMENT_ROOT"]."/temp/"; $valid_formats = array("jpg", "png", "jpeg"); $name = $file['name']; $size = $file['size']; if(strlen($name)) { $ext = substr($name, strrpos($name, ".")+1); if(in_array($ext, $valid_formats)) { if($size<(1024*1024*5)) { // ограничение размера фотки $actual_image_name = time().$session_id.".".$ext; $tmp = $file['tmp_name']; if(move_uploaded_file($tmp, $path.$actual_image_name)) { // обрежем картинку до 450px $size_max = 450; switch (substr($actual_image_name,-3)) { case "png": $old = imagecreatefrompng($path.$actual_image_name); break; case "jpeg": $old = imagecreatefromjpeg($path.$actual_image_name); break; case "jpg": $old = imagecreatefromjpeg($path.$actual_image_name); break; default: die("bad pic: ".substr($actual_image_name,-3)); break; } $w = ImageSX ($old); $h = ImageSY ($old); if($w > $h) { $w_new = $size_max; $h_new = ceil ($w_new * $h/$w); } else { $h_new = $size_max; $w_new = ceil ($h_new * $w/$h); } $new = imagecreatetruecolor ($w_new, $h_new); imagecopyresampled($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w, $h); $save_name = substr($actual_image_name, 0, -4).".jpg"; $file_path = $path.$save_name; imageJpeg($new, $file_path, 100); } else die("Файл не загружен"); } else die("Большой размер"); } else die("Неверное расширение: {$ext}"); } else die("Неверное название"); ?>
Выберите область для превьюшки: |