После переноса не открываются новые вложения

Автор kodmis, 21 мая 2010, 16:37:44

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kodmis

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

10449_NNDHuDHDH_29_01_GIF_thumb038168d82ee10986ac2a9382ad8bc78c
10448_NNDHuDHDH_29_01_GIFb77bb61462ce180a94ff940a05cf817b
10446_NNDHuDHDH_29_01_GIFb77bb61462ce180a94ff940a05cf817b
10447_NNDHuDHDH_29_01_GIF_thumb038168d82ee10986ac2a9382ad8bc78c

В этом примере, как я понимаю, 2 файла вложений с кириллицей в имени, плюс превьюшки к ним.
Сейчас (созданная после переезда) пара файлов вложений именуется на сервере вот так:

11658_DHDHNNDHDHDHDH_jpg_thumb78fd3341085a2ab8e31bba1778419020
11655__jpg25b2916b5c49db617f52fa5ea48efee7
11656_DHDHNNDHDHDHDH_jpg_thumb78fd3341085a2ab8e31bba1778419020
11653__jpg25b2916b5c49db617f52fa5ea48efee7

Т.е. в имени превьюхи сохранилась эта странная посл. "DHDHNNDHDHDHDH", а в имени самого изображения нет. :(
В чем ошибка - непонятно, где в коде формируется имя файла я не нашел. В клиенте mysql содержимое таблицы smfc_attachments отображается нормально - имена закаченных картинок в utf8.

SMF 1.1 RC3 (знаю что старая, жду релиза 2.0), кодировка utf8, язык русский, модов нет.
PHP Version 5.2.8

Куда дальше копать - не знаю...  :-\ Может у кого-нибудь есть идеи?

BIOHAZARD

Цитата: kodmis от 21 мая 2010, 16:37:44
SMF 1.1 RC3 (знаю что старая, жду релиза 2.0)
ждите дальше
может лет через ... ... ... ... ... ... (много короче) и выйдет

проблема эта здесь обсуждалась (я и сам с ней сталкивался), но чем закончилось уже и не помню
вроде само всё рассосалось с одним из апдейтов
Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

kodmis

Прежде чем создать тему, я поискал ответ на свой вопрос, но ничего не нашел. Может вы подскажите какие-нибудь ключевые слова, чтоб найти упомянутое вами обсуждение?

BIOHAZARD

Мои моды:
  • RedirectPage
  • Counters
  • CustomSearch
  • SypexDumper
   адаптирую темы    1.1.хx<=>2.0задавая вопросы, старайтесь сразу указывать конечную цель, предполагаемый Вами путь не обязательно окажется самым коротким

Любые моды на заказ

kodmis

Большое спасибо за наводку  O0
вот это решение помогло:
Цитата: Alder от 31 августа 2008, 00:12:08
Было: проблема с аттачментами, содержащими кириллицу. Форум в UTF-8, локаль сервера - UTF-8. Выяснилось, что basename действительно обрезает все юникодные символы до первого не-юникода. Это легко проверяется выполнением скрипта со следующим кодом:
<?php
$filename 
'Петя321Вася.php';
echo 
basename($filename);
?>

Решение: функция basename является локалезависимой. Ее результат зависит от локали, которую использует php. Соответственно в своем случае помогло добавление строчек
setlocale(LC_ALL, 'ru_RU.UTF-8');
в файл subs-post.php перед вызовами basename (в 2-х местах). Данная локаль (ru_RU.UTF-8) должна присутствовать на сервере. Список локалей можно узнать у вашего хостера или зайдя по ssh и выполнив команду: locale -a