Модуль работы с файлами на кириллице. Существует ли подобный?

Главные вкладки

Аватар пользователя m00n m00n 19 декабря 2018 в 19:35

Доброго вечера!

Следующая задача - организовать хранение на сайте офисных документов, соответственно названия файлов на русском языке (Мой крутой документ.docx, Счета.xls и т.п.) Понятно, что в самой файловой системе Drupal всё лучше хранить в транслите. Но хотелось бы организовать что-то такое:

  1. При загрузке файла оригинальное имя ложится в поле "Описание файла" (file description), сам файл транслителированный сохраняется в private.
  2. При сохранении файла подменяем заголовок, подставляем русское имя из описания - в итоге у клиента файл сохраняется в оригинальном русском названии.

Существует-ли подобный модуль или отдельные модули?

или какие хуки использовать в первом и втором случае?

Спасибо.

Комментарии

Аватар пользователя Phantom63rus Phantom63rus 19 декабря 2018 в 22:11

Стоп, а в чём собственно проблема? Файлы могут обзываться хоть на русском, хоть на хинди, все основные фс под все основные серверные оси держат юникод, там в ограничениях только спецсимволы. Т.е. транслитерировать их совершенно не обязательно.

Аватар пользователя Orion76 Orion76 20 декабря 2018 в 6:23

Да.. юникод он и есть юникод..

Теоретически нельзя применять в именах файлов только слэши, т.к. они являются разделителями пути.

Но бывают программки в системе, работающие с файлами, у которых требования к наименованию файлов "строже".

Поэтому достаточно вычистить все "символы" кроме букв,цифр,точек, знаков_подчеркивания и заменить пробелы на знаки подчеркивания.

Да.. кстати, пользователи могут попытаться загрузить файлы в кодировке "не юникод". (чаще всего win-1251)
Необходимо предусмотреть конвертацию "не юникода" в юникод.

Резюме.
Т.е. 2 наименования файла не обязательно..
Можно поискать подходящий для подобных "преобразований" имени файла готовый модуль.
Или по примеру готового написать свой.

Аватар пользователя Phantom63rus Phantom63rus 21 декабря 2018 в 13:03

Эммм, а разве название файла передаётся в кодировке фс клиента? О_о

На самом деле грабли с русскими именами файлов есть, но они специфичны:
- многие программы понимают в ссылках только английский
- при переносе с сервера на сервер можно отхватить кракозябр
- некоторые серверные скрипты также могут не уметь русский
и т.д. и т.п.

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

Аватар пользователя marassa marassa 19 декабря 2018 в 22:18

У меня на сайте волею судеб половина файлов изображений имеют кириллические имена, порой еще и длиннющие. Всё работает как швейцарские часы.

Аватар пользователя sas@drupal.org sas@drupal.org 20 декабря 2018 в 7:30

Я бы всё таки использовал транслитерацию чтобы потом не напороться, если уж совсем надо на русском, то паковать в архив на лету с транслитом и в нем уже хранить на русском, был бы смысл.