Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сжатие фото

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pava77
Отправлено: 28 Мая, 2013 - 20:37:18
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Март 2013  


Помог: 0 раз(а)

[+]


есть функция которая режет изображение, делает его меньшего веса, и есть код который сохраняет фото на сервер, но не могу объеденить их вместе, надо что бы при загрузке фотографии она сразу же уменшала свой вес и добавлялась на сервер?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require "db.php";
  3. function resize($file_input, $file_output, $w_o, $h_o, $percent = false) {
  4.         list($w_i, $h_i, $type) = getimagesize($file_input);
  5.         if (!$w_i || !$h_i) {
  6.                 echo 'Невозможно получить длину и ширину изображения';
  7.                 return;
  8.     }
  9.     $types = array('','gif','jpeg','png');
  10.     $ext = $types[$type];
  11.     if ($ext) {
  12.         $func = 'imagecreatefrom'.$ext;
  13.         $img = $func($file_input);
  14.     } else {
  15.         echo 'Некорректный формат файла';
  16.                 return;
  17.     }
  18.         if ($percent) {
  19.                 $w_o *= $w_i / 100;
  20.                 $h_o *= $h_i / 100;
  21.         }
  22.         if (!$h_o) $h_o = $w_o/($w_i/$h_i);
  23.         if (!$w_o) $w_o = $h_o/($h_i/$w_i);
  24.         $img_o = imagecreatetruecolor($w_o, $h_o);
  25.         imagecopyresampled($img_o, $img, 0, 0, 0, 0, $w_o, $h_o, $w_i, $h_i);
  26.         if ($type == 2) {
  27.                 return imagejpeg($img_o,$file_output,100);
  28.         } else {
  29.                 $func = 'image'.$ext;
  30.                 return $func($img_o,$file_output);
  31.         }
  32. }
  33.  
  34. // Все загруженные файлы помещаются в эту папку
  35. $uploaddir = 'images/';
  36.  
  37. // Вытаскиваем необходимые данные
  38. $file = $_POST['value'];
  39. $name = $_POST['name'];
  40. resize($file_input, $file_output, 100, 100, true);
  41. // Получаем расширение файла
  42. $getMime = explode('.', $name);
  43. $mime = end($getMime);
  44.  
  45. // Выделим данные
  46. $data = explode(',', $file);
  47.  
  48. // Декодируем данные, закодированные алгоритмом MIME base64
  49. $encodedData = str_replace(' ','+',$data[1]);
  50. $decodedData = base64_decode($encodedData);
  51.  
  52. // Вы можете использовать данное имя файла, или создать произвольное имя.
  53. // Мы будем создавать произвольное имя!
  54. $randomName = substr_replace(sha1(microtime(true)), '', 12).'.'.$mime;
  55.  
  56. // Создаем изображение на сервере
  57. if(file_put_contents($uploaddir.$randomName, $decodedData)) {
  58.         // Записываем данные изображения в БД
  59.         mysql_query ("INSERT INTO images (date,catalog,filename) VALUES (NOW(),'$uploaddir','$randomName')");
  60.         echo $randomName.":Успешно";
  61. }
  62. else {
  63.         // Показать сообщение об ошибке, если что-то пойдет не так.
  64.         echo "Что-то пошло не так. Убедитесь, что файл не поврежден!";
  65. }
  66. ?>
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB