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

Автор Sailorman, 22 декабря 2006, 15:29:05

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

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

Sailorman

Подскажите пожалуйста как можно решить проблему с аттачами на русском языке.
Тыкаешь на скрепке в FireFox сохраняется правильно, а в IE кодировка слетает на всякие символы непонятные. Форум установлен в UTF-8.

P.S. Про русские имена файлов не надо, я каждого своего пользователя не собираюсь учить.

Adept

 Присоединяюсь к Sailorman. Имею такую же проблему. Кодировка UTF-8. Названия файлов в разных браузерах выглядят по разному: в мозиле могут выглядеть нормально, а в экслпорере появляется название файла крякозяблами, не удобно просто ужасно!!. Кто может помогите разобраться плиз.

Avdenago

О. как раз хотел спросить...

Те же грабли, но немного другого плана. Аттачи на русском языке - вообще не открывает - тыкаешь в аттач - открываеться новое окно и пишет  - 404 Файл не найден...

Галку на "Кодировать имена файлов"  - ставил...

Что делать?


Avdenago

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

ArapovUV

:) сделать фильтр на русские имена файлов или транслитератор

Avdenago

Цитата: ArapovUV от 03 октября 2007, 10:29:18
:) сделать фильтр на русские имена файлов или транслитератор

мне интересно другое - почему в одном месте работает - у другого хостера - нет...

Тем более писать фильтр - это по сути не наша забота, а разрабов. Да и думаеться мне, что данный фильтр как то присутствует... вот только что то не работает всегда как надо...

digger®

Цитата: Avdenago от 02 октября 2007, 22:30:34
Аттачи на русском языке - вообще не открывает - тыкаешь в аттач - открываеться новое окно и пишет  - 404 Файл не найден...

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

Avdenago

ммм.

Вот похоже на русском
57_Idhacaioaoey1_jpg_thumbd5d709043f736b5346d029ff1d013bfe

а вот на англ
51_IMG_3294_jpg_thumb7ff8fb619ff6e3835c88ce064233ae89

ArapovUV

возможно дело в том. что Апач настроен по умолчанию на ср1251 ?

Avdenago

Цитата: ArapovUV от 04 октября 2007, 08:50:57
возможно дело в том. что Апач настроен по умолчанию на ср1251 ?

Поподробнее?

Mavn

Если стоит настройка все в одну кодировку гнать принудительно то могут быть проблемы потому как перегон может криво работать
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.


Avdenago

Собственно вот тут:
http://ssangyongclub.ru/club/index.php?topic=34.msg231#msg231

В сообщении называеться : Презентация1.jpg
А ссылка то идет смф-ская: http://ssangyongclub.ru/club/index.php?action=dlattach;topic=34.0;attach=56;image

вот. и по ссылке ессесно ничего не открываеться :(


fomenka

Для форума в кодировке 1251 проблема была решена через редактирование sub-post.php. Русские имена убивает функция basename. И в FF, и в IE правильно загружаются и просматриваются, скачиваются аттачменты с русскими буквами в названии. В Opera не проверял.
Возможно, и вам поможет.  :D

Avdenago



fomenka

$attachmentOptions['destination'] = $modSettings['attachmentUploadDir'].'/'.getAttachmentFilename(basename...

Уберите basename и проверьте.

savirmir

Цитата: fomenka от 08 октября 2007, 21:37:05
Для форума в кодировке 1251 проблема была решена через редактирование sub-post.php. Русские имена убивает функция basename. И в FF, и в IE правильно загружаются и просматриваются, скачиваются аттачменты с русскими буквами в названии. В Opera не проверял.
Возможно, и вам поможет.  :D
Для кодировки 1251 такой проблемы вовсе нет! ;)
SMS на одном из моих форумов используется чуть ли не с первых версий, все прикреплённые файлы на русском прекрасно видны и без проблем открываются... На другом форуме не пробывал, так как просто вложения запрещены... но почему-то на 99% уверен, что и там всё будет нормально... :)

ЗЫ. Заходил Оперой, Мозиллой, Морской обезьяной, Файфоксом, осликом Иа-Иа...

fomenka

Цитата: savirmir от 09 октября 2007, 16:05:55
Для кодировки 1251 такой проблемы вовсе нет! ;)
К сожалению, есть.
В мире операционных систем больше, чем одна. И кодировок тоже. Проблемы начинаются, когда кодировка форума не совпадает с системной локалью.


fomenka

Цитата: digger от 10 октября 2007, 15:02:56
Мне не надо ничего убирать, у меня и c basename работает.
Хм...так кроме Вас в этой теме еще люди высказывались. Вы заметили? Например, Avdenago.

digger®

Цитата: fomenka от 10 октября 2007, 16:08:35
Хм...так кроме Вас в этой теме еще люди высказывались. Вы заметили? Например, Avdenago.
Если у них имена файлов превращаются в непотребщину в момент загрузки, то им этот рецепт не поможет.

fomenka

Я бы не был столь категоричным. Возможно, причина другая, но этот рецепт помогал уже не раз. И не только мне. Дождемся ответов от людей, у которых такая проблема еще не решена?

digger®

Цитата: fomenka от 10 октября 2007, 22:45:40
Я бы не был столь категоричным. Возможно, причина другая, но этот рецепт помогал уже не раз. И не только мне. Дождемся ответов от людей, у которых такая проблема еще не решена?

Вообще, проблема имеет два варианта.

1) Нормальное имя файла записано в базу. На диске сохранен файл с битым именем.
Беда.
2) Нормальное имя файла записано в базу. На диске сохранен файл с нормальным именем. Форум при генерации ссылки на аттач колбасит от русского имени файла.
Тут может помочь рецепт с baseline. Так же, возможно, может помочь указание php нужной локали. Так же, вспомнил что в каких-то версиях php5 был баг с basename и неанглийскими символами.

Сам считаю, что лучшим вариантом было бы написать патч для форума, чтобы к именам вложений применялось urlencode/urldecode

bbbbbb

чем не нравится utf8?
или при перекодировке глюки могут быть?

fomenka

#27
Цитата: digger от 11 октября 2007, 02:01:46
1) Нормальное имя файла записано в базу. На диске сохранен файл с битым именем.
Битое имя возникает на этапе upload'а. В базу пишет правильное имя файла, а на диске файл создает с именем,  "исковерканным" basename. Причем, с эскизами этого не происходит. См. исходник Subs-Post.php
В любом случае, urlencode/urldecode нужен. И об этом говорят, как о стандарте обработки файлов. Но пока что-то этот стандарт разработчики не спешат соблюдать.

Цитата: bbbbbb от 11 октября 2007, 02:54:19
чем не нравится utf8?
или при перекодировке глюки могут быть?
Да почему не нравится? Нравится! Только вот глюк этот с вложенными файлами, похоже, и в utf8-кодировке форума имеет шанс себя проявить.

Avdenago

Короче. я не знаю программерских подробностей...

Но удаление basename дейстивтельно помогло...

пс. Форум был в win1251 кодировке...

Adept

 Имею ту же проблему. Кодировка UTF-8, пока не включаю шифрование файлов - закачивание на форум произвести можно, но доступ к файлам потом теряется. При включинии шифрования все работает, но в эксплорере и иногда в других браузерах при сохранении файла  корябит имя на  нечитаемые символы.
Удаление basename не помогает. Локаль ru_RU.utf8 на хостинге имеется.

jazz

Цитата: Avdenago от 11 октября 2007, 10:56:41
Короче. я не знаю программерских подробностей...

Но удаление basename дейстивтельно помогло...

пс. Форум был в win1251 кодировке...

да дело именно в php5 и basename ...
сам на днях перешел на 5-й пхп и заметил такой же глюк .. пока раскопал где проблем а... :) ...
вообщем если не верите можете вывести одно и тоже имя файла чарез basename написанное русскими символами в 1251 на 4-м и на 5-м пхп ....
пятый его просто обрезает.

Олег Верещагин

Цитата: fomenka от 08 октября 2007, 21:37:05
Для форума в кодировке 1251 проблема была решена через редактирование sub-post.php. Русские имена убивает функция basename. И в FF, и в IE правильно загружаются и просматриваются, скачиваются аттачменты с русскими буквами в названии. В Opera не проверял.
Возможно, и вам поможет.  :D
Спасибо, давно мучался с этой проблемой. Очень помогли!

JiN.88

#32
а какое решение будет в случае с UTF-8?

хост:
локаль системы ru_RU.utf8
Apache 2.0.59
PHP 5.2.2
MySQL 5.0.4

база:
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: UTF-8_general_ci

SMF:
SMF 1.1.4, при установке выбрано UTF-8
установлен мод TP 0.983
установлены русские UTF-8 локализации SMF и TP

При открывании аттача содержащего русские буквы в названии при помощи IE7, аттач открывается, но имя файла превращается в набор крякозябров.
При открывании при помощи FireFox2 - имя файла выглядит нормально, все замечательно.

Что где нужно поправить для нормального отображения в IE?
(только прошу конкретных указаний что где на что править, ибо в php я не силен  :( )

JiN.88

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

dextor

Цитата: JiN.88 от 12 марта 2008, 09:26:09
Проблема существует только у меня?
Поиски решения ничего не дали.
Предлагать пользователям не пользоваться IE - некорректно немного, имхо.
Прошу ответить.
Проблему подтверждаю, проявляется только в IE.

Mavn

читайте тему потом задавайте вопросы выше по тексту дано решение!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

JiN.88

Цитата: Mavn от 12 марта 2008, 09:46:55
читайте тему потом задавайте вопросы выше по тексту дано решение!
финт с subs-post.php и basename не проходит
возможно потому-что форум не в кодировке 1251
или решение - делать форум в кодировке 1251 ?

JiN.88

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

Shneider

Здравствуйте, очень надеюсь на вашу помощь.
У меня форум на бесплатном хосте, форум мы с другом заливали и ставили сами, версия SMF 1.1.4 и вот возниклатакая проблема, прикрепленные к сообщению файлы когда их пытаешся скачать/открыть, тоесть когда кликаешь на них открывается вот такое новое окно с сообщением:
ЦитироватьОшибка 404
Файл не найден

Запрашиваемая вами страница не существует
или вы вводите адрес не правильно.
Убедитесь что вы запрашиваете правильную страницу.
Попробуйте набрать адрес ещё раз.
Пожалуйста, убедитесь что ваш файрвол не модифицирует адреса.
Если вы используете прокси, попробуйте отключить его.
Я непонимаю почему так, в настройках форума разрешено прикреплять файлы до 2 мб, прикрепляют файлы максимум до 1 мб, притом заметил, есть прикрепленный файл (rar) размером 3.57 кб, так он скачивается, а файлы весом 4.67, 20, 36 кб выдает ошибку.
Прошу подскажите в чём проблема как её решить, а то я в дипрессии.

Mavn

а сами файлы в папке вложений есть или их нет?
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Shneider

Я заходил на ФТП в папку атачментс там все файлы есть, также в админку зашел в Вложения и аватары>Просмотр файлов>Вложения там тоже всё есть.
Что характерно фалйлы-картинки открываются для просмотра все, любого размера, а вот срасширением doc, zip, rar нет. idiot

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Shneider


Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Shneider

Спасибо! Проблему нашел, действительно нужно чтоб файлы были с названием на латинице.
Тему можно закрыть.

Avdenago

Цитата: Shneider от 22 марта 2008, 21:49:55
Спасибо! Проблему нашел, действительно нужно чтоб файлы были с названием на латинице.
Тему можно закрыть.

вот это еще советую почитать. мне помогало.
http://www.simplemachines.ru/index.php/topic,1200.0.html

libert

Ребята,всем привет...ну то что вы здесь все продвинутые я уже понял:)
Я тоже продвинутый ,но только по музыке....
У меня к вам вопрос(но считайте что очень слаб в компе)
У меня есть музыкальные вложения-это наши работы-аранжировки...вот эти вложения я не могу залить ни скачать в Internet Explorer...в Opere..в Mozille..пожалуйста..и что я только не пытался делать со своими небольшими знаниями..ничего не помогает..наверно я чего-то не знаю........а ребята на меня обижаются..у многих Explorer не все хотят менять Браузер..
Вот такая у меня большая или маленькая проблема....
Буду очень благодарен за помощь!!!!

Mavn

Название файлов на каком языке?
Кодировка и версия форума?
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

libert

Всем привет,а если я не хочу или не могу на латинице..что тогда делать???
У меня все вложения на русском и ничего не читает,а просить сотни пользователей переписывать у них в компе файлы перед отправкой-это нереально!!!!
Нужно решение,оно точно есть у того кто знает эту проблему!!!!

libert

Если пишу названия файлов латиницей проблем нет..проблема только с русскими названиями.
Кодировка utf-8
версия форума SMF 1.1.4

Шаннар

Предложенное решение помогло, заработало практически на всех браузерах и платформах. Только в IE6 у одного из пользователей наблюдается проблема с вложением на русском языке. \-:

libert

Mavn привет
Я написал выше:
Если пишу названия файлов латиницей проблем нет..проблема только с русскими названиями.
Кодировка utf-8
версия форума SMF 1.1.4

Я не очень понял что значит:Обратите внимание: Данное сообщение ожидает одобрения модератора
 

Mavn

Цитата: libert от 09 апреля 2008, 06:24:12
Я не очень понял что значит:Обратите внимание: Данное сообщение ожидает одобрения модератора
Это значит что за дублирование сообщений на форуме вам было сделано предупреждение в результате которого все ваши сообщения требуют одобрения!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

libert

Mavn ..За это короткое время я получил от тебя много разных ответов и даже непонятное предупрждение...
но ни разу ни ты ни кто нибудь из знающих ребят так и не ответил на мой вопрос??
Мы же здесь не в игры играем,Форум для многих довольно серезное занятие!
Я понимаю что Админ и Модераторы несут на себе большую тяжесть..но мы же не можем с тобой постоянно переписыватся ни о чём...вы же здесь для того что бы помогать???или я что то не понимаю???
Все что мне нужно-это решить мою проблему и я больше не буду вас тревожить своим присутствием.
Спасибо

Mavn

Если я объединил темы значит была причина! И ответ на ваш вопрос в этой теме. Прочитайте внимательно и найдете ответ на ваш вопрос http://www.simplemachines.ru/index.php/topic,1200.msg16837.html#msg16837
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

libert

К сожалению я так не смог разобраться в этом вопросе,видимо у меня не хватает знаний.Там в основном описано как решается в коде 1251,у меня utf-8...я стирал basename а у меня пропадала возможность отвечать в теме...пришлось возвращать все назад..
Есть ли возможность написать конкретные действия именно для человека не очень разбираюшегося в скриптах,php и так далее.
Спасибо всем кто поможет!

fomenka

От удаления basename терять возможность ответа в теме...что-то странно. Проверь внимательно, правильно ли ты все делал.
Приведи результат phpinfo cо своего хоста, будет понятнее. А пока гадания на кофейной гуще.
В любом браузере проблема с вложениями на русском или только в IE?

PS phpinfo поищи на форуме, где-то есть - заодно прочитаешь что это :)

Alder

Было: проблема с аттачментами, содержащими кириллицу. Форум в 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


Alber

господа, что делать если удаление basename не помогает?

кодировка - win1251.

Alber


Mavn

кто нибудь есть о проблеме сообщено разработчикам когда будет результат сообщим
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Alber

неужели действительно сообщили... или это отписка для надоедливых юзеров? ;)

Mavn

у нас достаточно много сообщений об ошибках вопрос в том что не всегда в паблике делаем это!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Alber

эта замечательно! а ждать надо в стабильном 2.0 релизе? ибо проблема судя по топику уже старая, а в стабильной ветке 1 не починена.

Adept

 Возможно кому-нибудь поможет данное решение для случая с UTF-8, если проблему создали сами себе при правке файла Subs.php. Проверьте, чтобы кодировка файла Subs.php была ANSI!! даже если сам форум в UTF-8. Мелочь, а может кому и решить проблемы.

BuxarNET

Цитата: 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
Этот вариант у меня сработал на ура!
SMF 2.0 RC1 UTF-8 (форум на 3х языках и все сохраняется корректно)

Oleg+

Нужна помощь по SMF 1.1.13.

После переезда на другой аппаратный сервер был утерян доступ ко всем (не только русскоязычным!) вложениям.

Выглядит это так : все вложения дают ошибку 404 при попытке их открыть. Хотя сами файлы вложений есть в наличии! Т.е. при переезде никуда не делись.

В чём тут может быть проблема и как её решить?

Права на папку attachments = 777

Права на файлы, которые в ней = 644
Житель района Восточное Дегунино (Москва, Россия)

Oleg+

Проблема решилась... изменением (абсолютного) адреса папки с вложениями в настройках форума  :P
Житель района Восточное Дегунино (Москва, Россия)

Belman

Добрый день. Уже голову сломали не можем решить проблему.
Ситуация следующая, на форуме имеются вложения, те вложения названия которых содержат кирилицу - не отображаются.  Хотя корректно сохранены в базе.
Если добавляешь новое вложение которое содержит кирилицу - вложение открывается. Проблема только с вложениями которые были перенесены.
Заранее благодарны за помощь.
Добавление setlocale(LC_ALL, 'ru_RU.UTF-8'); не помогло
Удаление basename не помогло

GeorG

Цитата: Belman от 29 июня 2013, 19:09:06Хотя корректно сохранены в базе.
Если добавляешь новое вложение которое содержит кирилицу - вложение открывается.
И прям нет никаких различий, с тем как сейчас сохраняются и с тем как сохранялось прежде?
Верстка тем по шаблону, их доработка/переработка, переделка тем с версии smf 1.1 на smf 2.0. Примеры работ - insidestyle.ru
Установка модов (заточка под ваш форум); Моды под заказ; Обновление форума; Правильный перенос; Удаление/лечение вирусов; Устранения ошибок.
Обращаться в ЛС
Мой форум
Модуль анти-спама CleanTalk, сам пользуюсь
Сервера которыми сам пользуюсь - cadedic.ru

Belman

Цитата: GeorG от 02 июля 2013, 10:31:15
И прям нет никаких различий, с тем как сейчас сохраняются и с тем как сохранялось прежде?

Совершенно верно