-
Junior Member
Название файлов на русском языке (или любом другом)
Здравствуйте, господа!
Установив на сайт InstantCMS заметил, что в ее компоненте "Форум" невозможно прикреплять к сообщениям файлы с русскими названиями: названия искажаются, после чего файлы не загружаются.
Попробовал загрузить этот же файл через менеджер файлов панели управления в папку "/public_html" , получил огроный файл сиспорченным названием "_#1057__#1087__#1080__#1089__#1082__#1080_ _#1075__#1088__#1091__#1087__#1087_ 3_#1082_ _#1048__#1041_.doc.", при попытке открыть который выскакивает ошибка "
Error: document not found
"
Собственно вопрос в том, можно ли каким-то образом для этого хостинга настроить нормальную загрузку файлов на русском/украинском/китайском/немецком или любых других языках?
Пользователи форума ведь будут добавлять к сообщению файлы с разными названиями. Их никак не приучишь предварительно переименовывать файлы. Как вариант вижу только прозрачное для пользователя переименование файла (транслитерацию) непосредственно в процессе его загрузки, но это тоже не совсем выход.
Какая локаль вообще установлена на самом сервере?
Заранее спасибо за ответ.
P.S. Если вдруг нужен мой логин, то он - kafedr
Last edited by contributor; 03-12-2011 at 07:33 PM.
Reason: Добавил P.S.
-
Super Moderator
Re: Название файлов на русском языке (или любом другом)
Здравствуйте! Логин то есть, а вот сервера не видать
Возможно ваш форум использует одну из функций которая отключена в целях безопасности и уменьшения нагрузки, хотя у меня при работе с phpbb3 подобных проблем с файлами не возникло.
-
Junior Member
Re: Название файлов на русском языке (или любом другом)
Спасибо за быстрый ответ!
Сервер, вроде, девятый - Free Web Hosting Service Powered by Cloud Computing - Host1Free.com (если я там смотрю, где нужно).
Попробую пока переставить эту CMS. Но подозреваю, что эффект будет аналогичный.
-
Junior Member
Re: Название файлов на русском языке (или любом другом)
Переустановка не помогла.
Вообще как-то странно происходит переименование.
Например, загружается файл "Новый текстовый документ (2).txt", на форуме он отображается как "текстовый документ (2)_0157e.txt", а в файловом менеджере панели администрирования - "òåêñòîâûé äîêóìåíò (2)_0157e.txt".
Другой пример: загружается файл "Второй важный документ .txt", на форуме он отображается как "_важный_документ__0157e.txt ", а в файловом менеджере панели администрирования - "_âàæíûé_äîêóìåíò__0157e.txt".
Еще пример: загружается файл "123 супер важный документ - копия.txt", на форуме он отображается как "123_супер_важный_документ__-_копия_0157e.txt ", а в файловом менеджере панели администрирования - "123_ñóïåð_âàæíûé_äîêóìåíò__-_êîïèÿ_0157e.txt".
И с картинкой тест: загружается файл "help.gif", на форуме он отображается как "help_0157e.gif", а в файловом менеджере панели администрирования - "help_0157e.gif".
Непонятно, почему в некоторых случаях пропадает первое слово из названия и во всех добавляется в конце "_0157e".
Как вы думаете, это проблема самой CMS или хостинга?
-
Super Moderator
Re: Название файлов на русском языке (или любом другом)
Это CMS как то обрабатывает файлы при загрузке. При чем по видимому она использует такую кодировку в которой невозможно нормально обработать русские символы. В phpbb3 с UTF-8 таких проблем не возникает.
-
Junior Member
Re: Название файлов на русском языке (или любом другом)
-
Junior Member
Re: Название файлов на русском языке (или любом другом)
Поковырявшись, увидел, что эта CMS действительно как-то странно в некоторых случаях имена файлов обрабатывает, но тут возник другой вопрос.
А это нормально, что если без всякой CMS попробовать загрузить сюда на сервер через менеджер файлов панели директ админ файл с русским названием, то русские буквы также заменятся на их коды: "#1057__#1087__#1080__#1089__#1082__#1080_ _#1075__#1088__#1091__#1087__#1087_ 3_#1082_ _#1048__#1041_.doc"?
Вопрос возник потому, что я решил сделать транслитерацию загружаемых файлов, как описано здесь - Транслит загруженных файлов - InstantCMS Community . Однако после редактирования, сохранения файла "/components/users/frontend.php" и его последующего открытия (добавил туда фрагмент кода):
===========================================================
$name=strtr($name,"абвгдеёзийклмнопрстуфхъыэ_","abvgdeeziyklmnoprstufh'iei");
$name=strtr($name,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_","ABVGDEEZIYKLMNOPRSTUFH'IEI");
$name=strtr($name, array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye") );
===========================================================
я обнаружил, что все русские и украинские буквы заменены на их коды, и код не работает. Т.е. в этом случае замену проводила уже не CMS.
Другой вариант кода:
===========================================================
$info = pathinfo($name);
$file_name = basename($name,'.'.$info['extension']);
$file_name = cmsCore::strToURL($file_name);
$ext = substr($name,1+strrpos($name,"."));
$name=$file_name.".".$ext;
===========================================================
работает, но вопрос о том, нормально ли то, что происходит замена всех русских/украинских букв на их коды, остается открытым.
Заранее спасибо за ответ.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
Forum Rules