Новичок
Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2011
Помог: 0 раз(а)
|
Просьба помогите разобраться что делать Мне надо что бы при загрузке фото если оно больше чем надо по высоте ширение фото уменьшалось У меня есть скрипты но я не знаю как организовать что бы всё работало Подскажите что куда поставить
Вот скрипты
Форма загрузки
CODE ( html):
скопировать код в буфер обмена
<form action="upload.php" method="post" target="hiddenframe" enctype="multipart/form-data" onsubmit="hideBtn();"> <input type="file" id="userfile" name="userfile" /> <input type="submit" name="upload" id="upload" value="Загрузить" /> </form> <div id="res"></div> <iframe id="hiddenframe" name="hiddenframe" style="width:0px; height:0px; border:0px"></iframe>
-------------------------------- -------------------------------- ----------
php обрабочик
PHP:
скопировать код в буфер обмена
<?PHP if(isset($_POST['upload'])){ //Список разрешенных файлов $whitelist = array(".gif", ".jpeg",".jpg",".mp3", ".png"); $error = true; //Проверяем разрешение файла foreach ($whitelist as $item) { if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false; } //если нет ошибок, грузим файл if(!$error) { $folder = 'upload/';//директория в которую будет загружен файл $uploadedFile = $folder.basename($_FILES['userfile']['name']); $data = $_FILES['userfile']; } else { $data['errors'] = "Во время загрузки файла произошла ошибка"; } } else { $data['errors'] = "Файл не загружен"; } } else{ $data['errors'] = 'Вы загружаете запрещенный тип файла'; } //Формируем js-файл $res = '<script type="text/javascript">'; $res .= "var data = new Object;"; foreach($data as $key => $value){ $res .= 'data.'.$key.' = "'.$value.'";'; } $res .= 'window.parent.handleResponse(data);'; $res .= "</script>"; echo $res; } else{ } ?> <?PHP $x = $y = 0; if ($w > $h) { // если ширина больше длины $x = ($w - $h) / 2; // вычисляем начало $w = $h + $x; // и конец координат } else { // иначе $y = ($h - $w) / 2; // делаем тоже самое $h = $w + $y; // для высоты } crop ($uploadefile,$uploadefile,array($x,$y,$w,$h)); // запускаем функцию обрезки с массивом координатresize($uploadefile,$uploadefile,150,150); // запускаем функцию масштабирования ?> -------------------------------------------------------------------------- php resize <?PHP /** * Масштабирование изображения * * Функция работает с PNG, GIF и JPEG изображениями. * Масштабирование возможно как с указаниями одной стороны, так и двух, в процентах или пикселях. * * @param string Расположение исходного файла * @param string Расположение конечного файла * @param integer Ширина конечного файла * @param integer Высота конечного файла * @param bool Размеры даны в пискелях или в процентах * @return bool */ function resize($file_input, $file_output, $w_o, $h_o, $percent = false){ if (!$w_i || !$h_i) { echo 'Невозможно получить длину и ширину изображения'; return; } $types = array('','gif','jpeg','jpg','png'); $ext = $types[$type]; if ($ext) { $func = 'imagecreatefrom'.$ext; $img = $func($file_input); } else { echo 'Некорректный формат файла'; return; } if ($percent) { $w_o *= $w_i / 100; $h_o *= $h_i / 100; } if (!$h_o) $h_o = $w_o/($w_i/$h_i); if (!$w_o) $w_o = $h_o/($h_i/$w_i); if ($type == 2) { } else { $func = 'image'.$ext; return $func($img_o,$file_output); } } ?> <?PHP foreach ($files as $file) { resize($file, $file, 50, 0, true); // ширину не указываем – скрипт определит её сам } ?>
(Добавление)
Виновен следующий раз сделаю как надо Отредактировано модератором: SAD, 20 Мая, 2011 - 01:38:25 зачем лепить опрос, если он не нужен?
и зачем создавать 2 одинаковые темы?
обрамляйте код тегами!
|