Jump to content


Photo
* * * * * 3 votes

Оптимизация и загрузка изображений

jbimage

71 replies to this topic

#1 black_paw

black_paw
  • JBZoo User (rus)
  • User rate: 9.2
  • posts: 96
  • topics: 7

Posted 15 July 2014 - 12:19

*
POPULAR

Пожалуй многих волнует тема загрузки изображений с 'фронта'
Вот как это возможно реализовать:

За основу взята библиотека plupload. Изменен шаблон submission.php элемента jbimage и внесены небольшие правки в jbimage.php в плане режима доверия и jbimage.xml добавлены управление размером и качеством загружаемых изображений.

В результате имеем такую форму подачи

1.png

 

 

Изображения сохраняются в директорию пользователя также как и в обычном элементе jbimage.

 

2.png

 

Схематично путь загрузки можно разделить на 2 ветки, до директории 'uploads' и после
Можете сохранять файлы куда угодно, нам нужна только 'uploads' в пути файла и указание любой директории после 'uploads/'.

bd175c1fb2e1d6719da03cec1eca2d2f67d7f5d8.png

Непосредственно в директорию 'uploads' необходимо скопировать файлы upload.php, delete.php, fc.php

upload.php - сам загрузчик.

delete.php - удаление файлов

fc.php - скрипт контроля количества загрузок (в представленном примере ограничено не более 10 загрузок за 5 мин и не более 100 в сутки). Для отключения опции достаточно закомментировать подключение файла fc.php в upload.php.

 

3.png

 

Для контроля также необходимо добавить таблицу в базу данных:
 

CREATE TABLE IF NOT EXISTS `<ПРЕФИКС_ВАШЕЙ_БАЗЫ>_flood_control_table` (
  `id` int(50) unsigned NOT NULL AUTO_INCREMENT,
  `ip` text NOT NULL,
  `params` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=665 ;

Реализована опция наложения логотипа при загрузке. Для этого необходимо скопировать изображение логотипа (*.png) в директорию uploads. В примере лого накладывается на конечное изображение более 300px в ширину  Для отключения опции - закомментировать код в файле uploads.php 

 

4.png

 

Элемент не повторяемый, возможно кто-нибудь додумает )

 

Удаление изображений и замена с удалением предыдущего через форму подачи так же возможна

 

6.png

 

в админке ничего не поменялось, все стандартно

 

7.png

 

 

В общем-то вроде все
из +:

+ загрузка с фронта желаемого размера и качества независимо от исходника;

+ наложение логотипа;

+ распределение по пользователям;

+ контроль количества загружаемых пользователями файлов;

+ нет необходимости вручную удалять файлы при редактировании.

 

из -

- поле добавления изображения не повторяемое;

- если в обновлении есть элемент jbimage, соответственно заменятся файлы элемента.

 

P.S.

1. дополнительная графика в архиве в директории 'images', копировать в ваш_домен/images/

2. необходимые для работы js и swf файл в директории js (копировать ваш_домен/js), либо изменить пути подключения в файле \media\zoo\applications\jbuniversal\elements\jbimage\tmpl\submission.php

В принципе файлы разложены по директориям и можно копировать из архива как есть в корень сайта с заменой.

Attached Files


Edited by black_paw, 11 September 2014 - 12:09.

  • 7

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 15 July 2014 - 13:35

Очень круто! И главное актуально.

Спасибо!


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 black_paw

black_paw
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 9.2
  • posts: 96
  • topics: 7

Posted 15 July 2014 - 14:39

На самом деле данная модификация работает уже больше полугода, все руки не доходили оформить все это для паблика.

Лично мне теперь для каждого нового сайта проще сверстать форму подачи и через неё шлёпать материалы, а так же редактировать, без админки и всех 'танцев'. Просто во много раз быстрее.


  • 2

#4 nikolia

nikolia
  • JBZoo User (rus)
  • User rate: 4.7
  • posts: 378
  • topics: 53

Posted 16 July 2014 - 13:40

чего то до меня не доходит(((( Нажимаю добавить фото, выбираю и не чего не происходит, фотография не загружается! Что делаю ни так?

2014-07-16_223830.jpg

И вот это куда прописывается?

CREATE TABLE IF NOT EXISTS `<ПРЕФИКС_ВАШЕЙ_БАЗЫ>_flood_control_table` (
  `id` int(50) unsigned NOT NULL AUTO_INCREMENT,
  `ip` text NOT NULL,
  `params` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=665 ;



  • 0

#5 black_paw

black_paw
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 9.2
  • posts: 96
  • topics: 7

Posted 16 July 2014 - 13:43

1. все не обходимые js, swf, и php файлы присутствуют в папках как в архиве?

2. это прямой SQL запрос в базу данных. http://joxi.ru/XnPGU_3JTJBzDjqFCvY

не забудьте заменить это <ПРЕФИКС_ВАШЕЙ_БАЗЫ>


Edited by black_paw, 16 July 2014 - 13:44.

  • 1

#6 nikolia

nikolia
  • JBZoo User (rus)
  • User rate: 4.7
  • posts: 378
  • topics: 53

Posted 16 July 2014 - 13:54

1. все не обходимые js, swf, и php файлы присутствуют в папках как в архиве?

2. это прямой SQL запрос в базу данных. http://joxi.ru/XnPGU_3JTJBzDjqFCvY

не забудьте заменить это <ПРЕФИКС_ВАШЕЙ_БАЗЫ>

Я взал ваш архив и распаковал с заменой некоторых файлов, все файла присутствуют.


  • 0

#7 black_paw

black_paw
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 9.2
  • posts: 96
  • topics: 7

Posted 16 July 2014 - 13:55

возможно как-нибудь увидеть это воочию?


  • 0

#8 nikolia

nikolia
  • JBZoo User (rus)
  • User rate: 4.7
  • posts: 378
  • topics: 53

Posted 16 July 2014 - 13:56

возможно как-нибудь увидеть это воочию?

Пробую на тестовом сайте на локалке, к сожалению показать не могу


  • 0

#9 black_paw

black_paw
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 9.2
  • posts: 96
  • topics: 7

Posted 16 July 2014 - 13:57

извините, у меня тоже глаз на спине нет )


  • 0

#10 black_paw

black_paw
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 9.2
  • posts: 96
  • topics: 7

Posted 16 July 2014 - 14:03

данные файлы подключены?

68fb0fb2381012d7a809e4813408e66ff5932200.png


  • 0





Click to return to top of page in style!