Кириллица в аттачах. Мультизагрузка - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы настройки и администрирования форумов IPB 2.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 3.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Кириллица в аттачах. Мультизагрузка

#1 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 13 Ноябрь 2012 - 10:02

Парни поставил полезный мод по мультизагрузке аттачей.

В превью аттачей не отображаются файлы с киррилическим написанием.

Сделал как советовали:

Как сделать, чтобы прикреплённые имена файлов имели русские символы в названии?

Цитата

Для этого необходимо открыть файл ./ips_kernel/class_upload.php, найти:
//-------------------------------------------------
// Make the uploaded file safe
//-------------------------------------------------

$FILE_NAME = preg_replace( "/[^\w\.]/", "_", $FILE_NAME );
Заменить на:
//-------------------------------------------------
// Make the uploaded file safe
//-------------------------------------------------

$FILE_NAME = preg_replace( "/[^a-zA-Z0-9а-яА-Я\-\.\_]/", "_", $FILE_NAME );



Обновил кэш, и всё равно засада осталась. Не подскажите в чём может быть засада, есть мысли ?
К сожалению с автором мода связаться не могу

Сообщение изменено: PaulZibert (13 Ноябрь 2012 - 10:04)

0

#2 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 13 Ноябрь 2012 - 11:06

Цитата

$FILE_NAME = preg_replace( "/[^a-zA-Z0-9а-яА-Я\-\.\_]/", "_", $FILE_NAME );


Наверняка проблема в кодировке и регулярки не распознают кириллицу. Можно решить проблему, заменив "белый список" на "черный": http://pastebin.com/9qTg5JEN
0

#3 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 13 Ноябрь 2012 - 11:58

Спасибо за подсказку ! А где это можно изменить ?
0

#4 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 13 Ноябрь 2012 - 13:06

Вместо:


$FILE_NAME = preg_replace( "/[^\w\.]/", "_", $FILE_NAME );

1

#5 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 13 Ноябрь 2012 - 13:17

Вы извините профана, а нужно первый или второй код вставлять отсюда ? http://pastebin.com/9qTg5JEN
И что значит белый и черный ?
Заранее спасибо за ответы и терпение !
0

#6 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 13 Ноябрь 2012 - 18:39

Попробовал заменить. Очистил кэш. Не сработало (
0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 13 Ноябрь 2012 - 18:51

Это вообще что за проверка, когда она применяется, при загрузки файлов или при их отображении? Если первый случай, то естественно срабатывать не будет, сколько там не чисти кеш. http://phpfaq.ru/debug#debug вам в помощь.
1

#8 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 13 Ноябрь 2012 - 19:13

Я, вообще говоря, тоже не в курсе, что там в двойке происходит. Но ТС указал на конкретную строку - я предложил другой вариант длинной в две строки, делающий то же самое, но не полагающийся на регулярки в той же мере. А в большем уже помочь или подсказать не смогу.
1

#9 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 13 Ноябрь 2012 - 19:18

Спасибо вам всем большое ! Сам я не программер, придется сносить мод мультиаттачей, ибо решение проблемы не увидел (
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 13 Ноябрь 2012 - 19:44

Ну да, это регулярка находится в методе upload_process (/ips_kernel/class_upload.php), так с чего ТС решил что надо очищать кеш мне тоже непонятно.

PaulZibert, если у вас utf-8 попробуйте заменить

$FILE_NAME = preg_replace( "/[^\w\.]/", "_", $FILE_NAME );

на
$FILE_NAME = preg_replace( '/[^а-яa-z0-9.]+/ui', '_', $FILE_NAME );


Так же попробуйте без флага u (u который перед i)
Проверять следует загрузкой файла, а не чисткой кеша.
1

#11 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 13 Ноябрь 2012 - 20:02

Большое спасибо ! Вот попробовал поставить вначале с флагом, потом без. Не сработало ((
Проверял путем загрузки файла. Вот метод.
http://narod.ru/disk...upload.rar.html
0

#12 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 14 Ноябрь 2012 - 17:54

Задача была решена товарищем вот так:

Цитата

$upoptfile = $file['name'];
$upoptfile=strtr($upoptfile,"абвгдеёзийклмнопрстуфхъыэ","abvgdeeziyklmnoprstufh'ie");
$upoptfile=strtr($upoptfile,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ","ABVGDEEZIYKLMNOPRSTUFH'IE");
$upoptfile=eregi_replace(" ","_",$upoptfile);
$file['name']=strtr($upoptfile, array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye", "?"=>"_", "№"=>"-"));

1

#13 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 14 Ноябрь 2012 - 18:58

У вас похоже проблемы с локалью. Лучше по этому поводу обратится к ТП. Если есть ssh покажите результат команды

locale -a | grep -i ru

1

#14 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 14 Ноябрь 2012 - 20:15

Есть еще такой вариант :)

$FILE_NAME = iconv( 'windows-1251', 'utf-8', $FILE_NAME );
$FILE_NAME = preg_replace('/[^\pL0-9.]+/u', '_', $FILE_NAME );
$FILE_NAME = iconv( 'utf-8', 'windows-1251', $FILE_NAME );

2

#15 Пользователь не на сайте   PaulZibert ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 152
  • Регистрация: 25-Декабрь 11
  • Репутация: 1
  • IPB version:2.3.x
 

Отправлено 15 Ноябрь 2012 - 07:20

Главное что решили, может кому то пригодится =)
0

Сообщить об этой теме:


Страница 1 из 1
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна