forum.coppermine-gallery.net

Support => Русский (Russian) => Language Specific Support => cpg1.4.x FAQ (Russian) => Topic started by: Kowex on May 02, 2007, 11:51:12 pm

Title: Русские имена файлов при загрузке в галер
Post by: Kowex on May 02, 2007, 11:51:12 pm
Возможно это как то решить?
Ошибки при создании миниатюр..
ссылка вот такого типа получается ...../userpics/10025/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_268.jpg
А было Изображение_268.jpg
Title: Re: Русские имена файлов, бяда..
Post by: Alex Revo on May 02, 2007, 11:55:47 pm
Странно... у меня такого не происходит...
Какая версия галереи?
Title: Re: Русские имена файлов, бяда..
Post by: Makc666 on May 03, 2007, 03:07:00 pm
Всего скорее это зависит от того, установлены ли:
php5-iconv или libiconv (не помню точно что важнее). 

и от настроек блока в файле php.ini:

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1

Но это лишь мои догадки :)
Title: Re: Русские имена файлов, бяда..
Post by: Kowex on May 06, 2007, 07:14:25 pm
версия 1.4.10


php.ini

;extension=php_iconv.dll
Title: Re: Русские имена файлов, бяда..
Post by: Kowex on May 27, 2007, 09:39:49 pm
Неужели никто не сталкивался с этим?
Как решить проблему, куда смотреть то хоть?

PHP 5
IIS 6
Title: Re: Русские имена файлов, бяда..
Post by: Alex Revo on May 27, 2007, 09:52:40 pm
Давай проверим догадки Makca.
Посмотри значения в блока [iconv] в своем php.ini (www.your_gallery.ru/phpinfo.php)
Если там прописана какая-то кодировка, то ее можно переопределить через .htaccess, для этого нужно добавить в этот файл примерно такие строки
php_value iconv.input_encoding = windows-1251
php_value iconv.internal_encoding = windows-1251
php_value iconv.output_encoding = windows-1251

Это тоже моя догадка, Makc может объяснить лучше.
Title: Re: Русские имена файлов, бяда..
Post by: Makc666 on June 26, 2007, 12:18:36 pm
Кстати, я тут перечитал первое сообщение.
Ссылка получается такая у тебя:
...../userpics/10025/%D0%98%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_268.jpg

Изображение то отображается?

Просто по другому эта ссылка выглядить не может.
Русских букв там быть не может в ссылке.

Можно заменить русские буквы на подчеркивание при заливке файлов:

Конфиг -> Дополнительные настройки файлов и миниатюр
Символы, запрещенные в именах файлов

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

По-моему, весьма изящьное решение этой проблемы - взять файл include/functions.inc.php, и заменить в нем

Code: [Select]
function path2url($path)
{
        return str_replace("%2F","/",rawurlencode($path));
}

на

Code: [Select]
function path2url($path)
{
        return str_replace("%2F","/",rawurlencode(iconv("windows-1251","utf-8",$path)));
}

Естественно, это требует наличия php с поддержкой iconv. Впрочем, вместо iconv можно использовать любую функцию, перекодирующую из 1251 в utf-8. Разумеется, вместо windows-1251 можно вписать что угодно, если имена файлов в иной кодировке.

Проверено на Coppermine 1.4.12, Apache 2.2, PHP 5.1.6.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Andrey on November 08, 2007, 04:03:53 am
после замены в файле include/functions.inc.php на
Code: [Select]
function path2url($path)
{
        return str_replace("%2F","/",rawurlencode(iconv("windows-1251","utf-8",$path)));
}
Стали отображаться фотки ранее загруженные с русским названием файла, и также успешно загружаются фотки с русским названием,
НО теперь файлы которые имеют русское название не возможно переименовать во что то другое, при такой попытке CPG говорит:
"Критическая ошибка
Исходный файл 'albums/userpics/10001/РРѕРСѓРСР_СРѕРРјС.jpg' отсутствует."
Но если заменить файл functions.inc.php на старый вариант с кодом:
Code: [Select]
function path2url($path)
{
        return str_replace("%2F","/",rawurlencode($path));
}
То переименовать удается успешно, но возвращается старая проблема с отображением файлов на русском :(
Кто знает где можно ещё подшаманить чуток? Чтобы и то и другое работало?
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on November 10, 2007, 03:06:07 am
Есть в файле:
editOnePic.php

вот такой кусок кода:
Code: [Select]
    // rename a file
    if ($_POST['filename'] != $pic['filename'])
    {
        if($CONFIG['thumb_use']=='ht' && $pic['pheight'] > $CONFIG['picture_width']) {
            $condition = true;
        } elseif ($CONFIG['thumb_use']=='wd' && $pic['pwidth'] > $CONFIG['picture_width']){
            $condition = true;
        } elseif ($CONFIG['thumb_use']=='any' && max($pic['pwidth'], $pic['pheight']) > $CONFIG['picture_width']){
            $condition = true;
        } else {
            $condition = false;
        }

        if ($CONFIG['make_intermediate'] && $condition ) {
            $prefices = array('fullsize', 'normal', 'thumb');
        } else {
            $prefices = array('fullsize', 'thumb');
        }

        if (!is_image($pic['filename'])){
            $prefices = array('fullsize');
        }

        foreach ($prefices as $prefix)
        {
            $oldname = urldecode(get_pic_url($pic, $prefix));
            $filename = replace_forbidden($_POST['filename']);
            $newname = str_replace($pic['filename'], $filename, $oldname);

            $old_mime = cpg_get_type($oldname);
            $new_mime = cpg_get_type($newname);

            if (($old_mime['mime'] != $new_mime['mime']) && isset($new_mime['mime']))
                cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['mime_conv'], $old_mime['mime'], $new_mime['mime']), __FILE__, __LINE__);

            if (!is_known_filetype($newname))
                cpg_die(CRITICAL_ERROR, $lang_editpics_php['forb_ext'], __FILE__, __LINE__);

            if (file_exists($newname))
                cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['file_exists'], $newname), __FILE__, __LINE__);

            if (!file_exists($oldname))
                cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['src_file_missing'], $oldname), __FILE__, __LINE__);

            if (rename($oldname, $newname))
            {
                cpg_db_query("UPDATE {$CONFIG['TABLE_PICTURES']} SET filename = '$filename' WHERE pid = '$pid' LIMIT 1");
            } else cpg_die(CRITICAL_ERROR, sprintf($lang_editpics_php['rename_failed'], $oldname, $newname), __FILE__, __LINE__);
        }
    }

Может быть игра вот с этими переменными:
Code: [Select]
            $oldname = urldecode(get_pic_url($pic, $prefix));
            $filename = replace_forbidden($_POST['filename']);
            $newname = str_replace($pic['filename'], $filename, $oldname);
на примере:
Code: [Select]
function path2url($path)
{
        return str_replace("%2F","/",rawurlencode(iconv("windows-1251","utf-8",$path)));
}
вам и поможет.

P.S. У меня на сайте все работает с руссими буквами на ура без всяких изменений где-либо...
Title: Re: Русские имена файлов при загрузке в галер
Post by: Andrey on November 12, 2007, 05:38:01 am
да у меня тоже всё было нормально пока не обновился с 1.4.9 до 1.4.13 :(
спасибо посмотрю может что получится..
Title: Re: Русские имена файлов при загрузке в галер
Post by: BrB on April 14, 2008, 10:54:48 am
Один из вариантов решения:

Открываем:
Code: [Select]
include/functions.inc.php
Находим строку:
Code: [Select]
$str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $str);;
Заменяем на:
Code: [Select]
$str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ъ', 'ы', 'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ъ', 'Ы', 'Э', 'Ю', 'Я'), 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', '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);;
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on April 14, 2008, 07:02:25 pm
Один из вариантов решения:
Хороший вариант, но, я думаю, что лучше было бы сделать вот так:

Открываем:
Code: [Select]
include/functions.inc.php
Находим строку:
Code: [Select]
$str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $str);
Под ней вставляем строку: 
Code: [Select]
$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', '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);
P.S.
Т.к. в строке:
Code: [Select]
$str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $str);;явная опечатка в коде с дублированием ;; в конце строки, то лучше искать данную строку с одной ;
Title: Re: Русские имена файлов при загрузке в галер
Post by: BrB on April 16, 2008, 11:18:52 am
Эту опечатку допустили сами разработчики  :(  (версия 1.4.16)
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on April 16, 2008, 10:16:31 pm
Эту опечатку допустили сами разработчики  :(  (версия 1.4.16)
Это точно :)
Я им об этом сразу написал, как увидел:
http://forum.coppermine-gallery.net/index.php/topic,51899.html
Title: Re: Русские имена файлов при загрузке в галер
Post by: BrB on April 23, 2008, 04:56:18 am
Makc666 думаю что ваш вариант лучше. У себя так и сделал.
Title: Re: Русские имена файлов при загрузке в галер
Post by: BrB on April 25, 2008, 11:03:22 am
Думаю, что еще лучше будет если сторока будет такая,
Code: [Select]
$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', '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);
т.к. приведем все к одному регистру
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on April 25, 2008, 08:38:44 pm
Думаю, что еще лучше будет если сторока будет такая,
Code: [Select]
$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', '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);
т.к. приведем все к одному регистру
Кстати да! Очень хорошое предложение!!!
Подобный вариант будет ещё лучше.
Т.к. UNIX системы чувствительны к регистру букв.
Единственное что, для удобства редактирования, подобные строчки лучше разбивать на две строки, к примеру...

Переименование только в маленькие буквы:
Code: [Select]
$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);

Переименование в маленькие и большие:
Code: [Select]
$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);

Хотя это я уже придераюсь :)

Важное дополнение: При копировании из поста куска кода в файл, не забудьте при сохранении файла указать его кодировку, т.е. UTF-8 при использовании стандартной версии галереи.
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on May 12, 2008, 12:49:13 pm
у меня возникла проблемка, связанная и с этой темой, и с темой "bbcode превью с увеличением по клику для вставки фото на форумы" http://forum.coppermine-gallery.net/index.php/topic,51295.0.html.
К какой теме моя проблемка больше относится пока не знаю, но чтоб не постить в двух темах, напишу только тут.
 
Благодаря предыдущему сообщению от Makc666 я успешно решил проблему с русскими названиями файлов. Транслитерация работает замечательно. Однако в результатах работы плагина bbcode_1_21 возникает проблема отображения символа тильда ~, которая отображается как набор символов %7E.

Аналогично решению с русскими буквами попытался решить проблему и с тильдой, но не получилось. Порекомендуйте плиз вариант корректного ее отображения. Заранее спасибо.
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on May 12, 2008, 03:16:16 pm
и еще одно маленькое уточнение к написанному мной выше: параллельно с этой задачей порекомендуйте решение проблемы с некорректным отображением ссылок, если в их адресе находятся спецсимволы. так, на моем форуме запрещены символы % и ~, которые иногда встречаются. хотелось бы автоматом их заменить на процессе загрузки файлов.
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on May 12, 2008, 03:27:48 pm
я сам допустил ошибку в коде, потому и не работало. я добился чего хотел.
прошу модера удалить мои предыдущие сообщения.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on May 13, 2008, 01:14:15 am
я сам допустил ошибку в коде, потому и не работало. я добился чего хотел.
прошу модера удалить мои предыдущие сообщения.
Удалять не стоит :)
Вы сами можете отредактировать ваше сообщение и просто зачеркнуть в нем текст.

Вот так...
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on June 02, 2008, 04:19:48 pm
несколькими постами выше я писал, что по аналогии замены русских букв транслитом я сделал замену тильды ~. Потестировал, все норм. Но сегодня обнаружил несколько свежезагруженных пользователями файлов, где тильда не заменилась на указанный мной символ. Перепроверил еще раз- у меня все норм. Как такое возможно?
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on June 02, 2008, 04:43:35 pm
сорри, опять забыл указать версию.
установлена cpg 1.4.16
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on June 02, 2008, 04:56:40 pm

несколькими постами выше я писал, что по аналогии замены русских букв транслитом я сделал замену тильды ~. Потестировал, все норм. Но сегодня обнаружил несколько свежезагруженных пользователями файлов, где тильда не заменилась на указанный мной символ. Перепроверил еще раз- у меня все норм. Как такое возможно?
Вы нам напишите ваши строчки замены :)
Кстати, ~ - это специфический символ и его использование как-то сомнительно для меня лично :)
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on June 02, 2008, 05:27:03 pm
я тупо заменил тильду двойным подчеркиванием в файле functions.inc.php:
Code: [Select]
$str = str_replace(array('~', далее весь русский алфавит), array('__', далее транслит), $str);
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on June 03, 2008, 06:03:50 am
к предыдущему вопросу хочу добавить еще один: пока разбирался с заменой тильды на другой символ, я внес ее в список  символов, запрещенных в именах файлов. На данный момент запрещены %~$/\\:*?"'<>|` &
Но вчера среди загруженных фотографий появилась фотка с именем 2~1.jpg
Title: Re: Русские имена файлов при загрузке в галер
Post by: Alex Revo on June 03, 2008, 06:55:48 am
Не обращайте внимание. Это галерея так переименовывает файлы при загрузке файлов с именами, которые уже есть в папке пользователя. Когда в след.раз этот ользователь загрузит фото с именем 2.jpg, галерея переименует его в 2~2.jpg
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on June 03, 2008, 08:11:03 am
Не обращайте внимание. Это галерея так переименовывает файлы при загрузке файлов с именами, которые уже есть в папке пользователя.
но мне от этого не легче. в таком случае помогите изменить встроенную функцию переименования файлов с тем же названием, чтоб вставлялась не тильда, а хотя бы подчеркивание или еще как-то.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on June 03, 2008, 11:01:57 am

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

Меняйте на что хотите :)
Title: Re: Русские имена файлов при загрузке в галер
Post by: D.Kalessky on June 03, 2008, 04:38:18 pm
Makc666, спасибо!
Все сделал. Теперь работает как надо.
Title: Re: Русские имена файлов при загрузке в галер
Post by: MISHA on July 19, 2008, 05:48:52 pm
У меня стоит cpg1418 я зделал, как писали выше, добавил под строку

Code: [Select]
$str = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;'), array('&', '"', '<', '>'), $str);
строки

Code: [Select]
$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);

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

Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on July 21, 2008, 10:16:59 pm

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

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

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

Но имена меняются на транслит только при одиночном добавлении файлов, при групповом добавлении одни квадраты
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on July 25, 2008, 08:47:04 pm

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

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

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

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

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

Это конечно ошибка в скрипте видно, но вот я пока не смог найти с ходу способ это исправить :)
Title: Re: Русские имена файлов при загрузке в галер
Post by: Stern on September 29, 2008, 07:03:33 pm
Добрый день всем!
Проблема следующая:

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

В чём может быть затыка?
Title: Re: Русские имена файлов при загрузке в галер
Post by: Alex Revo on September 29, 2008, 08:23:18 pm
Затыка в кодировке. Нужно смотреть код мода и искать в каком месте возникает проблема.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Valeryn on November 12, 2008, 02:01:43 pm
Нашёл данную тему, всё зделал как описал Makc666, не получилось. Начинаю читать тему заново и тут до меня доходит, что это вообще не моя тема. Поискал ещё по русской ветке, не нашёл. Разрешите писать здесь.
Проблемма в том, что не отражаются изображения имеющие русские имена файлов.
Предыстория-раньше всё работало в том числе отображались изображения с русскими именами файлов. Не было проблем и по теме топика. У хостера грохается жёский. Всё подняли из бэкапа. Сайт (nuke) работает, а вот в галерее косяк. Перезалил файлы галереи. Не помогает. Скажите из-за чего это и как можно исправить? Может что у хостера в настройках после краха изменилось?
Title: Re: Русские имена файлов при загрузке в галер
Post by: Valeryn on November 15, 2008, 08:34:38 am
За поднятие топика сори. Помогите кто может. До 30% имена файлов на русском были залиты. Блондинки ругаются.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Alex Revo on November 15, 2008, 01:02:51 pm
А как теперь выглядят имена файлов в ссылках и как называются сами файлы?
Title: Re: Русские имена файлов при загрузке в галер
Post by: Valeryn on November 17, 2008, 01:30:20 pm
Alex Revo, имена файлов в ссылках выглядят с русскими буквами например - gallery/albums/userpics/10001/normal_Усть_Нера84.JPG
а сами файлы называются типа так - gallery/albums/userpics/10001/normal_Усть_Р СњР ВСЂРВ84.JPG
Раньше так же было. То есть эти абраказябрики нормально отражались. А сейчас.... обидно.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Alex Revo on November 17, 2008, 01:39:38 pm
Я полагаю в момент формирования ссылки на файл теперь стоит перекодировать его имя из utf-8 в cp1251 функцией iconv.
У меня была когда-то такая проблема, но решения в коде под рукой нет.
Почитайте в форуме темы о кодировках, я делал решение на основе этой информации.
Title: Re:
Post by: Valeryn on November 18, 2008, 12:47:50 pm
Alex Revo, не сочтите за труд в помощи. Я не программер, я обычный пользователь. Почитал что смог в русской ветке, не нашёл подходящего. Испытал - charsetmgr.php, благо всё назад нормально этим же путём вернулось.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on November 19, 2008, 01:54:53 pm
У хостера грохается жёский. Всё подняли из бэкапа. Сайт (nuke) работает, а вот в галерее косяк.
Перезалил файлы галереи. Не помогает. Скажите из-за чего это и как можно исправить? Может что у хостера в настройках после краха изменилось?
И что значит подняли из бекапа? Что именно?
А что значит "Перезалили файлы галереи"?

Может быть у хостера и изменилось что-то, только мы этого точно не знаем :) Это Вам нужно его спросить.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Valeryn on November 19, 2008, 03:05:50 pm
Quote
И что значит подняли из бекапа? Что именно?
А что значит "Перезалили файлы галереи"?
Месяц назад, всё содержимое папки "public_html" было скаченно с сервера. После краха всё содержимое в том числе и база данных была занового залита на сервер. База востанавливалась dumper -ом. У хостера поменялся только жёский диск. До краха стояла версия 1.4.18 после того как обнаружил не возможность отображения файлов с русскими именами проапгрейдил до 1.4.19. Не помогло. Изображения с русскими именами так и не отражаются.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Ola on November 20, 2008, 08:32:40 pm
Месяц назад, всё содержимое папки "public_html" было скаченно с сервера. После краха всё содержимое в том числе и база данных была занового залита на сервер. База востанавливалась dumper -ом. У хостера поменялся только жёский диск. До краха стояла версия 1.4.18 после того как обнаружил не возможность отображения файлов с русскими именами проапгрейдил до 1.4.19. Не помогло. Изображения с русскими именами так и не отражаются.
Проверьте правильность имен файлов в папке "albums".
При смене хостинга столкнулась с проблемой неправильной кодировки единичных кириллических символов в именах файлов.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Valeryn on November 21, 2008, 03:55:07 am
Ola, что проверенно то описанно выше. Я спрашиваю как это безобразие исправить.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on December 18, 2008, 12:47:02 pm
Ola, что проверенно то описанно выше. Я спрашиваю как это безобразие исправить.
Наверное, чтобы знать, как это исправить, нужно знать кучу вещей.
1. Какая операционная система у хостера?
2. Как отображались файлы с русскими именами в шеле до падения?
3. Как скачивались файлы при бекапе?
4. Как заливались файлы при бекапе?
5. Можно ли сейчас добавить файлы с русскими именами?
6. Работают ли они после этого?
7. Как они отображаются в шеле сейчас?
Title: Re: Русские имена файлов при загрузке в галер
Post by: Ahtub on January 17, 2011, 03:49:16 pm
Коллеги, похожая проблема...
Coppermine Photo Gallery 1.4.21
В самой галерее все отображается нормально, превьюшки показываются (в исходном тексте они типа <img src="albums/userpics/thumb_%D1%EA%E0%ED%E8%F0%EE%E2%E0%F2%FC10002.JPG")
А вот при выводе через скрипт "include script for CPG (c) 2003 GauGau (mail@gaugau.de) V1.4 "
превьшки с русскими именами не показываются (исходник типа photogallery/albums/userpics/10005/thumb_Вид_с_правого_берега_.JPG")
Как можно исправить? база и страницы 1251.
Title: Re: Русские имена файлов при загрузке в галер
Post by: Makc666 on January 23, 2011, 03:50:46 pm
Как можно исправить? база и страницы 1251.
Что-то мне подсказывает, что только переименованием имём файлов на английский язык.
А в будущем можно использовать автоматическую замену русских букв на английские.
http://forum.coppermine-gallery.net/index.php/topic,43506.msg253509.html#msg253509
Title: Re: Русские имена файлов при загрузке в галер
Post by: Ahtub on January 23, 2011, 05:01:24 pm
Заменил скрипт на CpmFetch
http://forum.coppermine-gallery.net/index.php/topic,35450.0.html

и все заработало как надо.
Title: N/A
Post by: GoshuaMup on May 22, 2020, 12:45:48 pm
N/A
Title: N/A
Post by: GoshuaMup on May 22, 2020, 12:54:21 pm
N/A