Русские имена файлов при загрузке в галер&#10 - Page 2 Русские имена файлов при загрузке в галер&#10 - Page 2
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Русские имена файлов при загрузке в галер

Started by Kowex, May 02, 2007, 11:51:12 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

D.Kalessky

я сам допустил ошибку в коде, потому и не работало. я добился чего хотел.
прошу модера удалить мои предыдущие сообщения.

Makc666

Quote from: D.Kalessky on May 12, 2008, 03:27:48 PM
я сам допустил ошибку в коде, потому и не работало. я добился чего хотел.
прошу модера удалить мои предыдущие сообщения.
Удалять не стоит :)
Вы сами можете отредактировать ваше сообщение и просто зачеркнуть в нем текст.

Вот так...

D.Kalessky

несколькими постами выше я писал, что по аналогии замены русских букв транслитом я сделал замену тильды ~. Потестировал, все норм. Но сегодня обнаружил несколько свежезагруженных пользователями файлов, где тильда не заменилась на указанный мной символ. Перепроверил еще раз- у меня все норм. Как такое возможно?

D.Kalessky

сорри, опять забыл указать версию.
установлена cpg 1.4.16

Makc666

Quote from: D.Kalessky on June 02, 2008, 04:19:48 PM
несколькими постами выше я писал, что по аналогии замены русских букв транслитом я сделал замену тильды ~. Потестировал, все норм. Но сегодня обнаружил несколько свежезагруженных пользователями файлов, где тильда не заменилась на указанный мной символ. Перепроверил еще раз- у меня все норм. Как такое возможно?
Вы нам напишите ваши строчки замены :)
Кстати, ~ - это специфический символ и его использование как-то сомнительно для меня лично :)

D.Kalessky

я тупо заменил тильду двойным подчеркиванием в файле functions.inc.php:
$str = str_replace(array('~', далее весь русский алфавит), array('__', далее транслит), $str);

D.Kalessky

к предыдущему вопросу хочу добавить еще один: пока разбирался с заменой тильды на другой символ, я внес ее в список  символов, запрещенных в именах файлов. На данный момент запрещены %~$/\\:*?"'<>|` &
Но вчера среди загруженных фотографий появилась фотка с именем 2~1.jpg

Alex Revo

Не обращайте внимание. Это галерея так переименовывает файлы при загрузке файлов с именами, которые уже есть в папке пользователя. Когда в след.раз этот ользователь загрузит фото с именем 2.jpg, галерея переименует его в 2~2.jpg

D.Kalessky

Quote from: Alex Revo on June 03, 2008, 06:55:48 AM
Не обращайте внимание. Это галерея так переименовывает файлы при загрузке файлов с именами, которые уже есть в папке пользователя.
но мне от этого не легче. в таком случае помогите изменить встроенную функцию переименования файлов с тем же названием, чтоб вставлялась не тильда, а хотя бы подчеркивание или еще как-то.

Makc666

Quote from: D.Kalessky on June 03, 2008, 08:11:03 AM
но мне от этого не легче. в таком случае помогите изменить встроенную функцию переименования файлов с тем же названием, чтоб вставлялась не тильда, а хотя бы подчеркивание или еще как-то.
Файл: upload.php
        while (file_exists($dest_dir . $picture_name)) {
            $picture_name = $matches[1] . '~' . $nr++ . '.' . $matches[2];
        }


Меняйте на что хотите :)

D.Kalessky

Makc666, спасибо!
Все сделал. Теперь работает как надо.

MISHA

У меня стоит cpg1418 я зделал, как писали выше, добавил под строку

$str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $str);

строки

$str = 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'), $str);
$str = 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'), $str);


Всё заработало прекрасно, огромное спасибо, но при груповом добавлении файлов русские имена не меняются :'( как это можно поправить?

Что бы Ктулху не воскрес, подпишись на RSS

Makc666

Quote from: MISHA on July 19, 2008, 05:48:52 PM
Всё заработало прекрасно, огромное спасибо, но при груповом добавлении файлов русские имена не меняются :'( как это можно поправить?
Круто, я в первый раз расписал тоже самое, что и раньше.

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

MISHA

В "Символы, запрещенные в именах файлов " я пробывал так:
$/\\:*?"'<>|` &абвгдеёжзийклмнопрстуфхцчшщыьъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ
и так:

$/\\:*?"'<>|`

Но имена меняются на транслит только при одиночном добавлении файлов, при групповом добавлении одни квадраты
Что бы Ктулху не воскрес, подпишись на RSS

Makc666

Quote from: MISHA on July 24, 2008, 10:26:35 PM
В "Символы, запрещенные в именах файлов " я пробывал так:
$/\\:*?"'<>|` &абвгдеёжзийклмнопрстуфхцчшщыьъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ
и так:

$/\\:*?"'<>|`

Но имена меняются на транслит только при одиночном добавлении файлов, при групповом добавлении одни квадраты
Я теперь понял, о чём вы.
На самом деле, Вам нужно было написать, что квадратики отображаются уже при открытие папки во встроенном проводнике.

Проблема в том, файлы на сервере лежат в одной кодировке, а вот из отображение в другой.

Если Вы переключите бразуер на кодировку windows-1251, то имена файлов увидите.
Но это Вам правда ничем не поможет.

Это конечно ошибка в скрипте видно, но вот я пока не смог найти с ходу способ это исправить :)

Stern

Добрый день всем!
Проблема следующая:

Галерея (с кодировкой 1251) интегрирована с форумом СМФ.
В СМФе стоит мод вывода картинок, загруженных пользователем, из Галереи в профиль.
Если файл картинки содержит русские буквы - превьюшка не выводится (в самой Галерее всё отображается прекрасно, вне зависимости от того, на каком языке название файла).

В чём может быть затыка?

Alex Revo

Затыка в кодировке. Нужно смотреть код мода и искать в каком месте возникает проблема.

Valeryn

Нашёл данную тему, всё зделал как описал Makc666, не получилось. Начинаю читать тему заново и тут до меня доходит, что это вообще не моя тема. Поискал ещё по русской ветке, не нашёл. Разрешите писать здесь.
Проблемма в том, что не отражаются изображения имеющие русские имена файлов.
Предыстория-раньше всё работало в том числе отображались изображения с русскими именами файлов. Не было проблем и по теме топика. У хостера грохается жёский. Всё подняли из бэкапа. Сайт (nuke) работает, а вот в галерее косяк. Перезалил файлы галереи. Не помогает. Скажите из-за чего это и как можно исправить? Может что у хостера в настройках после краха изменилось?

Valeryn

За поднятие топика сори. Помогите кто может. До 30% имена файлов на русском были залиты. Блондинки ругаются.

Alex Revo

А как теперь выглядят имена файлов в ссылках и как называются сами файлы?