Исходники и листинги ::: PHP ::: Класс загрузки картинок [PHP]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
  <?
  /*
  **** Внимание! Необходима константа PICPATH ****
  */
  class Picture
  {
  /**
  * @param string $file
  * @desc Проверяет файл на удовлетворение условию
  */
  function CheckPicture($file)
  {
  if (strlen($_FILES[$file]['name']) < 3) { return true;}
  if ($_FILES[$file]['error'] != 0)
  {
  return false;
  }
  elseif(intval($_FILES[$file]['size']) > 256001)
  {
  return false;
  }
  elseif (!preg_match('/.(gif|png|jpg|jpeg)/i', $_FILES[$file]['name']))
  {
  return false;
  }
  elseif (!getimagesize($_FILES[$file]['tmp_name']))
  {
  return false;
  }
  else
  {
  return true;
  }
  }
 
  /**
  * @param string $file
  * @desc Загружает файл на сервер в директорию PICPATH
  */
  function UploadPicture($file)
  {
  if (strlen($_FILES[$file]['name']) < 3) { return "NoPicture.jpg"; }
  $name = $this->GetName($_FILES[$file]['name']);
  if (move_uploaded_file($_FILES[$file]['tmp_name'], PICPATH.$name))
  {
  return $name;
  }else{
  return false;
  }
  }
 
  /**
  * @param string $name
  * @desc Возвращает правильное имя файла
  */
  function GetName($name)
  {
  if (file_exists(PICPATH.$name))
  {
  $nm = $name;
  while(file_exists(PICPATH.$nm))
  {
  $type = explode(".", $name);
  $nm = $this->GenName($type[count($type)-1]);
  }
  return $nm;
  }else{
  return $name;
  }
  }
 
  /**
  * @param string $type 
  * @desc Генерирует произвольное имя файла
  */
  function GenName($type = "jpg")
  {
  $allowChars = array('q','w','e','r','t','y','u','z','p','a','s','d','f','g','h','j','k','z','x','c','v','b','n','m','2','3','4','5','6','7','8','9');
 
  shuffle($allowChars);
  $n = count($allowChars) - 1;
  for ($i = 0; $i < 8; $i++)
  {
  $nm[] = $allowChars[mt_rand(0, $n)];
  }
  shuffle($nm);
  $name = implode("", $nm);
  return&nbsp;&nbsp;$name.".".$type;
  }
 
  }
  ?>
<<< Предыдущая работа

Вернуться в галерею исходников
Класс загрузки картинок [PHP]
Автор: JeRR*
Город: Юрга
Дата: 18.03.2007  16:57
Комментариев: 1
Просмотров: 677
Оценка: 0 (0|0|0|0|0) [0]

Вернуться на главную
Авторский комментарий к работе: Модуль для загрузки картинок на PHP. При загрузке проверяет картинку на \"правильность\" (тип, обёем, размер). Обрабатывает исключения с повторными именами картинок, при совпадении заменяет имя на сгенерированное. При удачной загрузке возвращает имя файла
Вы не можете оценивать

КОММЕНТАРИИ К РАБОТЕ:
Toy* ::: комментарий от 08.01.2008 | 12:16
Toy Приверженец (ур.6)
Очки: 578
Город: Норильск
Тв. работ: 5
Рег: 08.01.2008 (6537)
Клёва Удинственное, можно понтануться и строку 22 сделать:

elseif (!preg_match('/\.jpe?g$|\.gif$/i', $_FILES[$file]['name']))





--------------------
Панк не сдох!