За последние 24 часа нас посетили 197985 программистов и 2141 робот. Сейчас ищут 1760 программистов ...

Хранение файлов. Проблемы с кодировкой в названиях фалов

Тема в разделе "PHP для новичков", создана пользователем Amatory999, 7 авг 2009.

  1. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Здравствуйте. Есть сайт, на котором с админки можно добавлять файлы "пачками". Т.е. сначала заливаешь все файлы на хост в определенную директорию, потом в админке указываешь путь к ней и нажимаешь сохранить. При этом скрипт читает папку и записывает имена файлов в массив. Потом это все пишется в базу, а файлы перемещаются в другую директорию. Если это все делать с под Линукса, то проблем с кирилицей в названии файлов не возникает. Если же файлы заливать с под Windows, название файлов с кирилицей воспринимается так - ���� ����������.gif. Что можна с этим сделать? Зарание благодарен за ваши ответы.
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    На сайте убрать utf-8 и поставить кириллицу, либо конвертировать кириллицу в utf-8 с помощью ф-ции iconv().
     
  3. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    neverlose, Ну поставлю конвертацию iconv('window-1251', 'utf-8', $str). Только это будет работать в случае если буду заливать с ОС Windows, а если с Linux - gelen опять проблемы с кодировкой.
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Можно определять кодировку или ось.
     
  5. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Как? Подскажи пожалуйста?
     
  6. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Лучше Вам поискать в google примеры.
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    кодируйте файлы в транслит. не надо называть файлы русскими буквами.
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А лучше, если файлов много, давать им уникальные шестнадцатеричные имена или числовые.

    В форуме SMF файлы хранятся с оригинальным названием. Если кто-то закачает файл с названием myfoto.jpg, то другие не смогут закачать файл с тем же именем. Думаю, что спустя год уже тяжко будет подобрать имя для файла.
     
  9. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    440Hz,Kreker. Все не так просто, мужыки, файлы должны сохраняться с тем же именем что у них и есть. Объясняю почему. Файлы эти потом скачивают с сайта пользователи. Я же им не буду название файла выдавать в транслите(а перекодировать обратно из транслита - ничего хорошего не даст), а еще хуже в шестнадцатеричном коде. Ну представьте пользователь заходит в категорию музыка а ему выдается список песен с названием что-то вроде HEX - кода. Правда ему это не очень понравится?
    Kreker, а для уникальности достаточно к оригинальному названию файла добавить его id в базе. И сохранить на сервере уже с этим именем. Или вообще оставлять в названии только id.
    Просто задача в том чтобы получить имена файлов для занесения его в бд(Для пользователя), а потом уже как хранить его это другое дело(там уже разницы нет какое имя). Я заливаю по 1000 файлов за раз. Мне напряжно будет прописывать для каждого файла его имя.
     
  10. Amatory999

    Amatory999 Активный пользователь

    С нами с:
    23 июн 2009
    Сообщения:
    93
    Симпатии:
    0
    Что никто ничего по этому поводу не скажет?
     
  11. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Чем не подходит перевести русские символы в их ASCII представление и сохранить в 16-ричном фотмате, а при отдаче назад преобразовать?