ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
84   •   Посмотреть все темы

Запрет на вставку больших картинок для форума и прочих комментов.

 

1163
Денис @Анатолич
Тема оказалась не простой и дабы не плодить флуд в вопросах и ответах решил создать отдельную темку.
Напомню, что я хотел попробовать немного увеличить скорость загрузки страничек на форуме путем запрета вставки Огромных картинок.
Мне хочется совместить скрипт уменьшения размера картинки. Со скриптом проверки размеров.
И если эти размеры слишком большие (больше 1500 пикселов в высоту или ширину) То скрипт Должен выдать предупреждение алертом (размер картинки больше 1500 пикселов) и запретить вставку. Если же картинка меньше 1500 пикселов то просто ужать до нужных размеров (готовое решение для ужатия есть на этом форуме https://vmeste.eu/forum?pid=192883#p192883 )



Ветеран предложил вариант проверки размеров
function imghw2(url){
var img=new Image();
img.onload=function () {alert('Размер картинки по адресу ' + url + ' составляет: ' + img.width + 'x' + img.height);}
img.src=url;
}

Но моих скромных навыков. Не хватает на то чтобы совместить два кода написанных выше.
Если кто то подскажет как это можно сделать буду очень признателен.


p.s.
Собственно зачем это может пригодиться.
Показать текст

Отредактировано Анатолич - 11.12.2011
1390
Ванья @ВанькаRU
/* Функция изменения размера загружаемой картинки */
function imgminimum(obj)
{var img_max = 400; // максимальный размер картинки в пикселях
var heig=obj.height;
var widt=obj.width;
if (heig>img_max||widt>img_max) {
if (heig>widt) {obj.height=img_max} else {obj.width=img_max}
}
}

Не подойдёт ?

1007
BETEPAH @BETEPAH
Анатолич,
/* Отображение формы для создания тем, сообщений и их редактирования */
заменяете сабмитную кнопку
<input type=submit value=' отправить ' class=ok>
на обычную
<input type=button value=' отправить ' class=ok onclick='chekIt()'>&nbsp;<span id='wait'></span>
и перед /* Отображение быстрого перехода по форумам */ добавляете функции:
см. ниже

Отредактировано BETEPAH - 12.12.2011
1163
Денис @Анатолич
Примного благодарен. Но этот код надо немного доработать. Так как при попытке отправить сообщение без изображений, ничего не происходит (не отправляется). Не подскажете как правильно сделать проверку есть ли в сообщении тег [img]

Отредактировано Анатолич - 12.12.2011
1007
BETEPAH @BETEPAH
Анатолич пишет:

Примного благодарен. Но этот код надо немного доработать. Так как при попытке отправить сообщение без изображений, ничего не происходит (не отправляется). Не подскажете как правильно сделать проверку есть ли в сообщении тег

Попробуйте добавить строку
см. еще ниже

Отредактировано BETEPAH - 12.12.2011
1163
Денис @Анатолич
еще хуже стало(( совсем форум пропал(

1007
BETEPAH @BETEPAH
Анатолич,
вот такую тогда проверку поставьте. Я у себя протестировал - работает. Привожу полный код на всякий случай:
/* Отображение формы для создания тем, сообщений и их редактирования */
заменяете сабмитную кнопку
<input type=submit value=' отправить ' class=ok>
на обычную
<input type=button value=' отправить ' class=ok onclick='chekIt()'>&nbsp;<span id='wait'></span>
и перед /* Отображение быстрого перехода по форумам */ добавляете функции:
var candidate = 0;
function imghw2($0,$1){
var img = new Image();
img.onload = function () {
if (img.width > 1500 || img.height > 1500) {alert('Изображение по адресу ' + $1 + ' имеет размеры больше положенных 1500 пикселей.');}
else candidate--;
if (candidate == 0) document.form.submit();
}
img.src = $1;
}
function chekIt(){
document.getElementById('wait').innerHTML = 'Идет проверка размера изображений...';
var text = document.form.message.value;
var pattern = /\[img\](.*?)\[\/img\]/ig;
if (text.match(pattern) == null) document.form.submit();
else {
candidate = text.match(pattern).length;
var t = text.replace(pattern, imghw2);
}
}

Отредактировано BETEPAH - 12.12.2011