

open_file.php
#1
Отправлено 19 Март 2012 - 09:32
Есть ли возможность задавать размеры возвращаемого изображения средствами open_file.php. Если нет, не могли бы вы доработать, чтобы масштабирование происходило на серверной части. Это существенно бы снизило трафик.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#2
Отправлено 19 Март 2012 - 09:50
#3
Отправлено 19 Март 2012 - 10:47
в режиме таблицы


Тут кешом не получится.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#4
Отправлено 19 Март 2012 - 11:00
#5
Отправлено 19 Март 2012 - 11:35
поле типа файл, а не изображение
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#6
Отправлено 19 Март 2012 - 14:07
$fpath = get_file_path($field_id, $line_id, $file_name); $content = file_get_contents($fpath); list($w1, $h1) = getimagesize($fpath); $w2 = 100; $h2 = 100; // здесь сами задаете нужные вам размеры превью $preview_name = $table_id."_".$field_id."_".$line_id."_".utf2eng($file_name).".png"; if (!file_exists($config["site_path"]."/cache/".preview_name)) image_preview($content, $w1, $h1, $w2, $h2, $preview_name);$table_id, $field_id, $line_id и $file_name заполняете сами.
Выводить превью из кэша в любом случае предпочтительнее, чем через open_file.php с параметрами, т.к. в первом случае вы нагружаете сервер и клиент один раз, затем браузер берет картинку из своего кэша. Во втором случае нагрузка постоянная, и не факт что вы что-то выиграете.
#7
Отправлено 19 Март 2012 - 14:50
Превьюшки формируются налету посредством jquery и qtip (этот плагин и кэширует по умолчанию):
$("[href*='/cb/open_file.php']").each(function(){ var elem=$(this); var str=elem.attr("href"); var reg = /.*\.(\S+)$/; var ext=str.replace(reg,'$1'); var imgArr=new Array('jpg','jpeg','gif','png'); if (inArray(ext, imgArr)) { elem.qtip({ content: '<img style="max-width:150px;max-height:200px;" src="'+ str +'">' }); } });Это не требует создания дополнительных вычисляемых полей, достаточно иметь в таблице поле типа Файл.
Единственный минус изображение грузится целиком без масштабирования. Наличие настраиваемых опций передаваемых вместе с open_file.php могло бы решить эту проблему.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#8
Отправлено 19 Март 2012 - 15:32
andibrag (19 Март 2012 - 14:50) писал:
andibrag (19 Март 2012 - 14:50) писал:
#9
Отправлено 19 Март 2012 - 15:53
Разработчик (19 Март 2012 - 15:32) писал:
Разработчик (19 Март 2012 - 15:32) писал:
Разработчик (19 Март 2012 - 15:32) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#10
Отправлено 19 Март 2012 - 16:13
В общем суть в том, что для вашей просьбы необходима доработка, ее нужно ставить в план, и т.д., т.е. дело это не быстрое. Предложенное вычисление решает проблему уже сегодня.
#11
Отправлено 19 Март 2012 - 17:49
Разработчик (19 Март 2012 - 16:13) писал:
С изображениями вообще много вопросов в КБ. Понимаю, что это не основное, но как-то неуютно с ними работать. Хотелось бы и настройку параметров отображения и динамическое масштабирование, и всплывающие окна, быть может галерея и т.д. У нас, в связи со спецификой работы, много графической информации.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#12
Отправлено 06 Сентябрь 2012 - 23:23
function str_replace(search, replace, subject) { return subject.split(search).join(replace); } function utf2eng(str) { utf = ["а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ь", "ы", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ь", "Ъ", "Ы", "Э", "Ю", "Я"]; eng = ["a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "y", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "h", "c", "ch", "sh", "sch", "", "", "y", "e", "yu", "ya", "A", "B", "V", "G", "D", "E", "E", "Zh", "Z", "I", "Y", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "H", "C", "Ch", "Sh", "Sch", "", "", "Y", "E", "Yu", "Ya"]; sim = ["`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "+", "=", "[", "]", "{", "}", ":", ";", "\"", "'", "|", "\\", "/", "?", ",", ".", "<", ">", "№", " "]; str = str_replace(utf, eng, str); str = str_replace(sim, "_", $str); str = str.replace(new RegExp("__",'g'), "_"); return str; }Странно то, что русские заглавные буквы она преобразует в прописные английские. Как следствие эскиз изображения не выводится. Что не так?
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#13
Отправлено 07 Сентябрь 2012 - 10:50
str=str.replace(new RegExp(r_ch,'gi'),e_ch);Здесь замены сделана регистронезависимой. Причем по непонятным причинам. Поскольку массивы для сопоставления содержат и строчные и прописные буквы.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#14
Отправлено 07 Сентябрь 2012 - 11:24
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#15
Отправлено 07 Сентябрь 2012 - 13:09
#16
Отправлено 12 Сентябрь 2012 - 08:47
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#17
Отправлено 13 Сентябрь 2012 - 07:03
#18
Отправлено 13 Сентябрь 2012 - 07:06
#19
Отправлено 04 Июль 2015 - 02:11
Как браузер заставить кэшировать динамические изображения, получаемые через "open_file.php?....." ?
Пробовал через директивы в htaccess
<FilesMatch "^(\/cb\/open_file\.php)"> Header set Cache-Control "max-age=2592000" </FilesMatch>Варианты с регулярным выражением были разные. Не работает.
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#20
Отправлено 04 Июль 2015 - 16:41
Количество пользователей, читающих эту тему: 5
0 пользователей, 5 гостей, 0 анонимных