Поддержка Проблемы и решения Нужна помощь с обратной транслитерацией.

  • Решено costus

    (@costus)


    Задача: При загрузке файла на сайт имя файла на кириллице транслитеруется, а при скачивании с сайта происходит обратная транслитерация имя файла в кириллицу.
    Прошу помочь с решением данной задачи или советом. Заранее Спасибо.
    P.S. Wopdpress v.4.9.5, плагин — WP Translitera.

Просмотр 15 ответов — с 1 по 15 (всего 22)
  • Первоначально — транслитеруется по понятным причинам. Но маловероятно, что оно в именно таком виде вам требуется для чего-то еще.
    А потому, можно смотреть шире и правильно будет сказать, что «избавляемся от кириллицы», а значит — это может быть и просто ID записи в DB вместо имени файла.
    При скачивании, из этой же записи берем оригинальное название из этой же таблицы и отдаем.

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

    а при скачивании с сайта происходит обратная транслитерация имя файла в кириллицу.

    Это как?

    
    $File_Path = '...... www/wp-content/uploads/catalogdocs/24-1519924868.xxx';
    $Download_File = "Шла Саша по шоссе.txt";
    
    if (file_exists($File_Path)) {
    	if (ob_get_level()) {
    		ob_end_clean();
    	}
    
    	header('Content-Description: File Transfer');
    	header('Content-Type: application/octet-stream');
    	header('Content-Disposition: filename='.$Download_File);
    	header('Content-Transfer-Encoding: binary');
    	header('Expires: 0');
    	header('Cache-Control: must-revalidate');
    	header('Pragma: public');
    	header('Content-Length: '.filesize($File_Path));
    	
    	// читаем файл и отправляем его пользователю
    	readfile($File_Path);		
    } else {
    	echo 'Download Problems!';
    }
    

    Спасибо, стало понятней, буду пробовать.
    wpgear(@wpgear) т.к. ни разу не программист, не подскажешь в какой файл дописывать код (php.ini, .htaccess или другой)?

    costus!

    Вы сформулировали Задачу.
    Теперь, вам необходимо найти тех, кто ее вам реализует. Ну если действительно нет таких готовых плагинов.
    А вставлять вам ничего никуда не надо. Это будет слишком долгий и крайне не эффективный путь для вас.

    Ясно, спасибо. Хотя задачу я сформулировал больше для себя)))

    • Ответ изменён 6 лет, 1 месяц назад пользователем costus.

    И всё же — как это

    при скачивании с сайта происходит обратная транслитерация имя файла в кириллицу.

    ??
    Как (и чем) при скачивании изменяется имя реального файла? Причем вообще ВП при скачивании?

    ??
    Как (и чем) при скачивании изменяется имя реального файла? Причем вообще ВП при скачивании?

    Специально же для вас фрагмент кода публиковал. ((

    Модератор Yuri

    (@yube)

    Для информации: в общем случае процедура транслитерации необратима.

    Специально же для вас фрагмент кода публиковал. ((

    Во первых этот код никого отношения к транслитерации не имеет. (и вообще..)

    Во вторых — для того, чтобы сработал некий php-код — его нужно вызвать. Что при скачивании статических файлов… надо как минимум постараться с настройкой сервера и реализовать механизм аналогичный антихотлинкингу.

    И в третьих. Обратная транслитерация возможна только при условии использования одних и тех же правил (таблиц транслитерации). Зеркальных то бишь. И то нет 100%-й гарантии. Либо же хранении исходных имён и их восстановлении. Но это уже не обратная транслитерация.

    И вообще вопрос был ТСу.

    SeVlad!
    Ну вы же разумный человек.
    Лично я не употреблял формулировку «Обратная транслитерация», более того, я в своих рассуждениях настаивал, чтобы и первичную транслитерацию не делать.
    Вместо этого, предлагал совершенно иной сценарий для достижения Цели. В результате которого на выходе при Скачивании чтобы формировалось Оригинальное Имя Файла.

    При скачивании, из этой же записи берем оригинальное название из этой же таблицы и отдаем.

    Или вам все-таки Шашечки надо вместо — Ехать?

    В принципе SeVlad абсолютно прав, а я как дилетант считал, что если есть транслитерация, то должна быть и обратная. Теперь благодаря Вам понял, что придется запоминать исходные имена и возвращать их, если по-простому. Хотя бы знаю куда копать.

    wpgear, а я спрашивал — как возможен, описываемый ТС сценарий: «при скачивании с сайта происходит обратная транслитерация имя файла в кириллицу.»
    Я такого даже не представляю, в Вы мне отвечаете — «вот код».
    Ладно, проехали.

    придется запоминать исходные имена и возвращать их,

    Зачем? Не латинские имена файлов — источник проблем. Но если очень хочется топтаться по граблям, то в данном плагине транслитерация файлов дефолтно отключена и включается в его настройках.

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

    • Ответ изменён 6 лет, 1 месяц назад пользователем costus.

    Начинается рекурсия. ))

Просмотр 15 ответов — с 1 по 15 (всего 22)
  • Тема «Нужна помощь с обратной транслитерацией.» закрыта для новых ответов.