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

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

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

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

Previous topic - Next topic

0 Members and 2 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

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