FileField + русское имя файла + пробел в имени –> Пропадает первое слово в имени файла

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

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 27 октября 2010 в 7:55

Недавно обнаружил проблему, странную....

Если пользуем filefield и имя загружаемого файла начинается с русского слова отделенного пробелом, то это первое слово пропадает при загрузке на сервер!

Например "ГОСТ 103-76 ПОЛОСА СТАЛЬНАЯ ГОРЯЧЕКАТАНАЯ.doc" превращается в "103-76 ПОЛОСА СТАЛЬНАЯ ГОРЯЧЕКАТАНАЯ.doc"

Если слово начинается с английских букв, то все ОК. Кто знает, чтобы это значило??

Друпал 6.19, FileField -- последний, ImageField не включен. Активированы модули транслитерации и pathauto, но она не используются для закачки файлов.

Комментарии

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 27 октября 2010 в 12:40

glu2006 wrote:
есть модуль называется Транслитерация называется поставил и забыл про все проблемы с русскими буквами в именах файлов.

есть и только он сейчас меня спасает. )
НО есть ситуации, когда необходимо, чтобы файлы с сервера скачивались с русскими именами, пробелам и всяким таким прочим. что в это ситуации то делать? (

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 27 октября 2010 в 12:54

RxB wrote:
Сделать русскую операционную систему...

не глумись, пожалуйста. русские имена файлов, иногда, действительно требуются!
ну вот нужно чтобы скачиваемый файл назывался "ГОСТ 801-78 сталь подшипниковая.pdf" и все.
так как "gost_801-78_stal_podshipnikovaya.pdf" -- это уже не ГОСТ.

конструктивные идеи?

p.s. к слову, совершенно непроизвольно пришла на ум идея как можно красиво сократить сабж в цитате – РуссОСи

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 27 октября 2010 в 13:11

"<a href="mailto:v1adimir@drupal.org">v1adimir@drupal.org</a>" wrote:
не глумись, пожалуйста. русские имена файлов, иногда, действительно требуются!

Я не спорю, но в наших реалиях, русские имена файлов только лишняя мозговая и жопная боль. Максимум что я могу предложить, сделать враппер для скачки, чтобы файлы отдавались через пхп, т.е. например, ты пишешь модуль, ссылки на файлы заворачиваешь на него, например путь будет пусть
site.com/russian-name-cool-turbo-download/ГОСТ 801-78 сталь подшипниковая.pdf
У тебя это всё превратиться в
site.com/russian-name-cool-turbo-download/%D0%93%D0%9E%D0%A1%D0%A2%20801-78%20%D1%81%D1%82%D0%B0%D0%BB%D1%8C%20%D0%BF%D0%BE%D0%B4%D1%88%D0%B8%D0%BF%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F.pdf
Далее ты пхп-скриптом отдаёшь заголовки где указываешь русское имя и передаёшь контент.
Возрастёт нагрузка на сервант.
Но может и приватный метод загрузки файла в друпале спасёт.

Аватар пользователя msidiagnos01 msidiagnos01 2 ноября 2010 в 19:54

Включи "Описание" для загружаемых файлов в настройках поля + оставь транслитерацию имени файла. В итоге ты получишь цивилизованное с точки зрения сервера латинское имя файла, а сама ссылка будет выглядеть так, как ты забьешь ее в описании.

Т.е загружая файл "ГОСТ 801-78 сталь подшипниковая.pdf" на сервер у тебя ляжет файл "gost_801-78_stal_podshipnikovaya.pdf", а на странице сайта, где должна выводиться ссылка на эту pdf-ку будет красивая ссылка к примеру "Скачать ГОСТ 801-78 сталь подшипниковая"

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 2 ноября 2010 в 20:27

msidiagnos01 wrote:
Включи "Описание" для загружаемых файлов в настройках поля + оставь транслитерацию имени файла. В итоге ты получишь цивилизованное с точки зрения сервера латинское имя файла, а сама ссылка будет выглядеть так, как ты забьешь ее в описании.

Т.е загружая файл "ГОСТ 801-78 сталь подшипниковая.pdf" на сервер у тебя ляжет файл "gost_801-78_stal_podshipnikovaya.pdf", а на странице сайта, где должна выводиться ссылка на эту pdf-ку будет красивая ссылка к примеру "Скачать ГОСТ 801-78 сталь подшипниковая"


Так сейчас и работает, но есть заказчики, которым нужно чтобы русские буквы были в имени скачиваемого фала. Вот где проблема. )

Аватар пользователя Serge66 Serge66 2 ноября 2010 в 23:08

Заархивируй файл. Архив пусть будет "gost_801-78_stal_podshipnikovaya.zip", файл как был так и останется "ГОСТ 801-78 сталь подшипниковая.pdf". Заказчики архиватором умеют пользоваться, надеюсь.

Аватар пользователя samodelkin samodelkin 5 июля 2013 в 18:36

Еще может спасти атрибут "download" в теге ссылки, но он введен недавно и друпалом еще не поддерживается, нужно дописывать.

Пример.

<a href="/files/adlafjlxjewfasd89asd8f.pdf" download="expenses.pdf">Download Your Expense Report</a>