Форум русской поддержки Joomla!® CMS
06.12.2016, 10:09:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Attachments. Кодировка имени файла

 (Прочитано 20796 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mikolla
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« : 03.09.2009, 11:06:37 »

Привет всем. Joomla 1.5.13, Attachments Documentation V1.3.4. Всё работает, НО. На сервере (в папке Attachments) имена файлов неудобоваримые... типа 016_Распоряжение 15-1.pdf. Где то прочитал, что типа имена файлов должны быть на аглицком+цыфры...  Crazy Неужели правда !
Записан
mikolla
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« Ответ #1 : 22.09.2009, 14:14:13 »

Такое впечатление складывается, что на всех форумах по Joomla, все только и могут что тыкать ссылками на куцый FAQ. Где вы, мега-джумалоиды ?
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #2 : 22.09.2009, 14:15:46 »

на 99% уверен что название файлов\каталогов должно быть на латиннице, переименовывайте и будет счастье

P.S. участвуйте в развитии FAQ (который кстати как написано не относится к вопросам по сторонним расширениям движка)
Записан
mikolla
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9



« Ответ #3 : 23.09.2009, 07:44:48 »

Двоякое чувство у меня от Joomla. С одной стороны прекрасный инструмент! С другой стороны, убивает отсутствие очевидных вещей, что породило огромное количество всевозможных расширений. На данный момент нахожусь в очередном затыке, который похоже делит на 0 все усилия по изучению (в течении месяца) Joomla. Затык в распределении прав доступа юзеров к разделам/категориям/материалам. Неделю убил на JUGA(легаси, т.к. других не дают), взятой с http://www.dioscouri.com/. Не настраивается ! (( Вот где FAQи нужны !

p.s. А с кракозябрами в имени файла разобрался вот так. В файле components\com_attachments\helper.php после строки
$filename  = $_FILES['upload']['name'];
вставил
$filename = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja', 'A', 'B', 'V', 'G', 'D', 'E', 'Jo', 'Zh', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'X', 'C', 'Ch', 'Sh', 'Sch', 'J', 'J', 'Y', 'E', 'Y', 'Ja'), $filename);
Через заднюю калитку - но работает. Можно добавить решение в FAQ.
Записан
InternetStranger
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 25


Чёткий слонег)


« Ответ #4 : 26.09.2009, 19:26:59 »

Привет всем. Joomla 1.5.13, Attachments Documentation V1.3.4. Всё работает, НО. На сервере (в папке Attachments) имена файлов неудобоваримые... типа 016_Распоряжение 15-1.pdf. Где то прочитал, что типа имена файлов должны быть на аглицком+цыфры...  Crazy Неужели правда !

Друг! Не правда! И с русскими названиями файлов работает!
Беда не столько в Joomla, сколько в России как в таковой. Наша страна (вроде как) лидирует по количеству используемых кодировок. Ты конечно неплохое решение подобрал)
Лично я вот в качестве фтп-клиента использую FileZilla. У него опция замечательная есть: Кодировка UTF-8. Вуаля! Все по-человечески!
Записан
mahp
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 127


mahp


« Ответ #5 : 15.12.2009, 18:54:53 »

InternetStranger, ничё не понял. У меня на Денвере сайт и траблы с кодировкой аналогичные.
Записан
InternetStranger
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 25


Чёткий слонег)


« Ответ #6 : 16.12.2009, 15:00:20 »

Поясняю: проблема в том, что Денвер твой (как я весь Виндоус в целом) работает в кодировке win1251.
А Joomla и Аттачментс в кодировке utf-8. Из-за несовпадения кодировок у тебя "кракозябры". И вовсе не обязательно на английском  имена создавать  - эти кракозябры отлично работают. Так что "проблемой" это сложно назвать, ведь все работает =))

Когда зальешь на удаленный хостинг свой сайт, используй файловый менеджер FileZilla . Он умеет отображать файлы и папки в кодировке utf8, что (при должной сноровке) избавит от "кракозябр".
Записан
InternetStranger
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 25


Чёткий слонег)


« Ответ #7 : 16.12.2009, 15:01:32 »

Кста, кто-то тут говорил , что и Total Commander тоже как-то переключается в utf8 ))
Записан
mahp
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 127


mahp


« Ответ #8 : 19.12.2009, 18:03:33 »

Дык Joomla в утф8 на Денвере работает и отлично!
Я файлы с русскими названиями на Денвере гружу и подцепляю к статьям. И на хост, как и многие, хочу выложить готовый сайт. Т.е. имена вдруг станут в нормальной русской кодировке после выгрузки ФайлЗиллой? С чего вдруг?
PS Кодировка сбилась после их прикрепления к статьям в штатном режиме  самим модулем Аттачментс.
Записан
InternetStranger
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 25


Чёткий слонег)


« Ответ #9 : 26.12.2009, 02:52:43 »

имена вдруг станут в нормальной русской кодировке после выгрузки ФайлЗиллой? С чего вдруг?

В каком месте я написал что произойдет смена кодировки символов??
Чтобы решить проблему, нужно ее понять для начала. Боюсь вы не верно представляете себе что такое кодировка и как происходит кодирование символов.
Заглуглите ACSII и ANSI - коды и все станет понятнее.
(нужно просто посмотреть на эти символы через ту кодировку, в которой они были записаны)

зы: http://joomlaforum.ru/index.php/topic,79919.msg528252.html#msg528252
Записан
apru
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 10


CCCP


« Ответ #10 : 01.06.2010, 19:22:25 »

mikolla
Спасибо! Хоть такой, но выход, а то разведут кодировки, фтп, у нас в стране 97проц на винде, и притачиваешь файлу не по фтп..

В файле components\com_attachments\helper.php, строка
if (JFile::upload($_FILES['upload']['tmp_name'], $filename_sys))
меняем на
if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys)))
у меня работает
« Последнее редактирование: 02.06.2010, 22:42:18 от apru » Записан
jem777
Практически профи
*******

Репутация: +118/-2
Offline Offline

Сообщений: 1650



« Ответ #11 : 19.11.2010, 21:27:53 »

В файле components\com_attachments\helper.php, строка
if (JFile::upload($_FILES['upload']['tmp_name'], $filename_sys))
меняем на
if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys)))
у меня работает

Спасибо помогло, но теперь удаление этого файла не срабатывает. Из базы удаляет, но файлы с сервера удалить уже не может.
Компонент версии 2.1.2
Записан
apru
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 10


CCCP


« Ответ #12 : 13.02.2011, 23:55:55 »

Помогите, кто решил проблему с русскими вложениями в attachments-2.2
Записан
f1-forum
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #13 : 04.06.2011, 10:16:36 »

Вроде у меня решилось на Joomla 1.5.22.
До этого при загрузке изображений терялись все русские буквы, просто пропадали навсегда )
Решение - открыл файл:
libraries\joomla\filesystem\file.php

нашел сии строки:
Код:
function makeSafe($file) {
$regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
return preg_replace($regex, '', $file);
}

Добавил пару своих строк, получилось так:
Код:
function makeSafe($file) {
$file = str_replace(array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $file);
$file = str_replace(array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'x', 'c', 'ch', 'sh', 'sch', 'j', 'j', 'y', 'e', 'y', 'ja'), $file);
$regex = array('#(\.){2,}#', '#[^A-Za-z0-9\.\_\- ]#', '#^\.#');
return preg_replace($regex, '', $file);
}

И теперь он автоматом транслитерует все русские имена файлов. Правда я только на изображениях пробовал.


P.S. Правда это не помогло решить проблему в jSeblod CCK 1.8. Если загружать русские файлы через его формы то все не верно... где-то надо еще фиксить...
Записан
zedzone
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #14 : 16.11.2011, 17:13:06 »

Проблема по прежнему актуальна. Решения указанные в теме не подошли. Joomla 1.7.2, attachments 3.0.2, везде кодировка utf-8, сервер на винде, соответсвенно пишет в абракадабре на диск, и в этой же абракадабре ссылку в базу. 

if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys))) сработал только для имени файла, записываемого на диск, пишет теперь нарусском языке, а вот ссылка http:/...... остается в какой попало кодировке. как бы и ее поменять?
Записан
MazdaY
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 56


« Ответ #15 : 12.07.2012, 12:05:48 »

актуально для версии 3.0.2
Записан
miha2048
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 3


« Ответ #16 : 18.10.2012, 18:22:25 »

Проблема по прежнему актуальна. Решения указанные в теме не подошли. Joomla 1.7.2, attachments 3.0.2, везде кодировка utf-8, сервер на винде, соответсвенно пишет в абракадабре на диск, и в этой же абракадабре ссылку в базу. 

if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys))) сработал только для имени файла, записываемого на диск, пишет теперь нарусском языке, а вот ссылка http:/...... остается в какой попало кодировке. как бы и ее поменять?

В файле \components\com_attachments\views\attachments\tmpl\default.php комментим строчку $url = utf8_encode($url);
Записан
Офигенская
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #17 : 11.11.2012, 16:08:41 »

attachments
«  : 09.11.2012, 18:34:56 »   Цитировать

у меня проблема. Установив этот компонент вставки у меня возникло куча ошибок. сначала русификатор не подошел потом сам компонент не устанавливался в конце концов и компонент и русификатор были установлены. настройки я сделала но попыталась создать материал и мне выдает ошибку..нигде в Google я такой ошибки не нашла ```
500 - Обнаружена ошибка.

Ошибка базы данных с номером 1146
Table 'galasayt.ru.c9f84_attachments' doesn't exist SQL=SELECT count(*) FROM c9f84_attachments WHERE parent_id=0 AND parent_type='com_content' AND access in (1,2,3) (ERR 90)

Вернуться в Панель управления
. если я удаляю этот компонент то попытавшись создать статью мне выдало все на иероглифах..не пойму что я повредила...помогите у меня Joomla 2.5.7
Записан
sashakee
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 20


« Ответ #18 : 29.12.2012, 15:08:17 »

Помогите, прочитал все темы с поиска так и не нашел ответ.
1.Когда нажимаю на скачку прикрепленного файла, он открывается в новом окне и закачки не происходит.
Как сделать чтобы файл сразу скачивался?
« Последнее редактирование: 29.12.2012, 16:08:53 от sashakee » Записан
sashakee
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 20


« Ответ #19 : 29.12.2012, 19:09:07 »

Так что никто не знает? Я уже целый день сижу мучаюсь. Пробовал в файле file_types назначать
'txt' => 'application/x-zip'
'txt' => 'application/zip'
'txt' => 'application/txt'
'txt' => 'application/pdf'
Но безрезультатно
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #20 : 01.01.2013, 04:42:43 »

что за тип файла?
В .htaccess добавить строку типа
Код
AddType application/octet-stream .расширение
Записан
afikus
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 35



« Ответ #21 : 10.03.2013, 23:01:36 »

Решение для Joomla 2.5 + attachments 3.0

В файле components\com_attachments\helper.php, строка
Код:
if (JFile::upload($_FILES['upload']['tmp_name'], $filename_sys))
меняем на
Код:
if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys)))

В файле \components\com_attachments\views\attachments\tmpl\default.php комментим строчку
Код:
$url = utf8_encode($url);

Спасибо всем!  Cheesy

Записан
ozmail
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #22 : 03.06.2013, 11:14:35 »

Решение для Joomla 2.5 + attachments 3.0

В файле components\com_attachments\helper.php, строка
Код:
if (JFile::upload($_FILES['upload']['tmp_name'], $filename_sys))
меняем на
Код:
if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys)))

В файле \components\com_attachments\views\attachments\tmpl\default.php комментим строчку
Код:
$url = utf8_encode($url);

Спасибо всем!  Cheesy



Спасибо. Работает. Но есть одно "Но".
Использую добавление вложений с самого сайта (необходимо для пользователей), не с админки.
Видимо вот эта строчка:
if (JFile::upload($_FILES['upload']['tmp_name'], iconv('UTF-8', 'cp1251', $filename_sys)))
отрабатывает след образом: файл из ['upload']['tmp_name'] загружается в iconv('UTF-8', 'cp1251', $filename_sys) в другой кодировке.
В $filename_sys прописан путь файла, выше в helper.php описано что создается сначала временная папка "0" при добавлении вложения. оттуда загружается в пусть $filename_sys. При смене кодировки файл загружается не в созданную папку с некоторым id. а в нулевую папку. а ссылка на файл создается на папку с некоторым id.

как то так вроде. поправьте меня. и помогите с проблемой пожалуйстаз. с программированием только на Вы. Мал мало могу поправить
« Последнее редактирование: 16.08.2013, 05:48:25 от ozmail » Записан
ozmail
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #23 : 16.08.2013, 05:48:53 »

проблема актуальна
Записан
nuriman
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 1


« Ответ #24 : 11.04.2015, 11:38:14 »

Здравствуйте все!

Я доработал этот плагин (Attachments). Теперь русские имена файлов не портятся, корректно удаляются с диска при удалении вложения,
работает проверка на дублирование при добавлении уже существующего файла - также как и для имен на латинице.

Окружение:
- Win 8.1 русский
- Joomla_3.4.1-Stable-Full_Package

Исправления:

1. В файле: components\com_attachments\helper.php

   - после строки:
         $filename_sys = $fullpath . $filename;
     Добавить:            
         $filename_sys_cp1251 = iconv('UTF-8', 'cp1251', $filename_sys) ;

   - строку :
      if (JFile::upload($_FILES['upload']['tmp_name'], $filename_sys))
   Заменить на :    
      if (JFile::upload($_FILES['upload']['tmp_name'], $filename_sys_cp1251))

       - строку :
      if ( ($save_type == 'upload') && JFile::exists($filename_sys) )
   заменить на
      if ( ($save_type == 'upload') && JFile::exists($filename_sys_cp1251) )

2.В файле: \components\com_attachments\views\attachments\tmpl\default.php
   комментим строчку:
          $url = utf8_encode($url);

3. В файле: components\com_attachments\controller.php

Строки:
   if ( $filename_sys ) {
                 jimport('joomla.filesystem.file');
         if ( JFile::exists( $filename_sys )) {    
            JFile::delete($filename_sys);
            }                
         }
Заменить на:
    if ( $filename_sys ) {
                  $filename_sys_cp1251 = iconv('UTF-8', 'cp1251', $filename_sys) ;    
         jimport('joomla.filesystem.file');
         if ( JFile::exists( $filename_sys_cp1251 )) {    
            JFile::delete($filename_sys_cp1251);
            }                
         }

« Последнее редактирование: 11.04.2015, 11:48:20 от nuriman » Записан
GoLeMjkeee
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #25 : 13.05.2015, 10:26:08 »

День добрый.

С Attachments 2.2 по инструкции выше - все тоже работает.

Правда немного другие изменения. Благодарим тов. nuriman.
Показать текстовый блок

Проверил. Все работает.
« Последнее редактирование: 13.05.2015, 10:29:13 от GoLeMjkeee » Записан
GoLeMjkeee
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #26 : 14.05.2015, 10:41:50 »

Дополнение.
После изменений (attachments 2.2) при добавлении статьи через сайт выдает следующую ошибку:
Люди добрые, помогите доработать плагин.

Записан
jem777
Практически профи
*******

Репутация: +118/-2
Offline Offline

Сообщений: 1650



« Ответ #27 : 15.02.2016, 13:19:42 »

Показать текстовый блок
Спасибо дружище! Выручил с этой проблемой в кодировке. Она тянется с момента создания компонента.)

Модератору - большая просьба прикрепить эту тему наверху. Она пока постоянно всплывает из версии в версию.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet