Advertisement
SomniP

Заливка изображения на сервер (отлажено)

Dec 4th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.55 KB | None | 0 0
  1. //Изменение размера изображения
  2. function resizeImage($filename, $max_width, $max_height)
  3. {
  4.     list($orig_width, $orig_height,,,,,$mime) = getimagesize($filename);
  5.     $wert = getimagesize($filename);
  6.  
  7.     $width = $orig_width;
  8.     $height = $orig_height;
  9.  
  10.     # taller
  11.    if ($height > $max_height) {
  12.         $width = ($max_height / $height) * $width;
  13.         $height = $max_height;
  14.     }
  15.  
  16.     # wider
  17.    if ($width > $max_width) {
  18.         $height = ($max_width / $width) * $height;
  19.         $width = $max_width;
  20.     }
  21.     //создаем картинку под размеры
  22.     $image_p = imagecreatetruecolor($width, $height);
  23.  
  24.     //В зависимости от расширения картинки вызываем соответствующую функцию
  25.     if ($wert['mime'] == 'image/png') {
  26.         $src = imagecreatefrompng($filename); //создаём новое изображение из файла
  27.     } else if ($wert['mime'] == 'image/jpeg') {
  28.         $src = imagecreatefromjpeg($filename);
  29.     } else if ($wert['mime'] == 'image/gif') {
  30.         $src = imagecreatefromgif($filename);
  31.     } else {
  32.         return false;
  33.     }
  34.  
  35.     //сохраняем прозрачность
  36.     imageAlphaBlending($image_p, false);
  37.     imageSaveAlpha($image_p, true);
  38.     imagecopyresampled($image_p, $src, 0, 0, 0, 0,
  39.         $width, $height, $orig_width, $orig_height);
  40.  
  41.     //return $image_p;
  42.     return imagepng($image_p, $filename);//Сохраняет JPEG/PNG/GIF изображение
  43. }
  44.  
  45. //Сохранение изображения на сервер
  46. function set_image_in_server($_FILES0, $uploads_dir, $max_size)
  47. {
  48.     //Папка на сервере для хранения изображений
  49.     //$uploads_dir = "../../ava";
  50.     // Массив допустимых значений типа файла
  51.     $types = array('image/gif', 'image/png', 'image/jpeg');
  52.     // Максимально допустимый размер файла
  53.     //$size = 1024000;
  54.     $size = $max_size;
  55.  
  56.     // Обработка запроса
  57.     if ($_SERVER['REQUEST_METHOD'] == 'POST')
  58.     {
  59.         // Проверяем тип файла
  60.         if (!in_array($_FILES0['picture']['type'], $types))
  61.             die('<p>1Запрещённый тип файла. <a href="?">Попробовать другой файл?</a></p>');
  62.  
  63.         // Проверяем размер файла
  64.         if ($_FILES0['picture']['size'] > $size)
  65.             die('<p>2Слишком большой размер файла. <a href="?">Попробовать другой файл?</a></p>');
  66.  
  67.         $note = "0";
  68.         $name_start = basename($_FILES0["picture"]["name"]);
  69.         $tmp_name = $_FILES0["picture"]["tmp_name"];
  70.         $wert = getimagesize($tmp_name);
  71.         //В зависимости от расширения картинки вызываем соответствующую функцию
  72.         if ($wert['mime'] == 'image/png')
  73.         {
  74.             $note = ".png";
  75.         }
  76.         else if ($wert['mime'] == 'image/jpeg')
  77.         {
  78.             $note = ".jpeg";
  79.         }
  80.         else if ($wert['mime'] == 'image/gif')
  81.         {
  82.             $note = ".gif";
  83.         }
  84.         else
  85.         {
  86.             $note = "-1";
  87.         }
  88.         $name_gen = rand(10,10000)."_".date("d_m_Y_H_i_s").$note;
  89.         resizeImage($tmp_name, 600, 200);
  90.         move_uploaded_file($tmp_name, "$uploads_dir/$name_gen");
  91.         return $name_gen;
  92.     }
  93.     else
  94.     {
  95.         return "-1";
  96.     }
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement