Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Загрузка файлов на сервер


Автор: Vex 2.8.2007, 20:10
привет, пытаюсь залить файл на сервер:

Код

$dest=$updir.$userfile_name;
    move_uploaded_file($userfile, $dest);


все отлично работает, только не загружается кирилица и с пробелами проблема :(
есть какая-то функция, которая преобразовывает имя файла в приемлемый вид - латинские буквы и замена пробела знаком подчеркивания?

СУВ.

Автор: Anarki 2.8.2007, 20:37
Вообще зависит от кодировки в какой пришло название файла, как мне кажется.
Тогда определить кодировку и проставить локаль через http://php.net/setlocale вначале(или сконвертировать в нужную кодировку, которая задана для скрипта)
http://phpclub.ru/faq/wakka.php?wakka=encodings/encodings4&v=336
А затем перевести в латинские буквы
Вот отсюда скрипт транслитерации
http://www.softtime.ru/scripts/translit.php
Там буквально изменить пару строчек и получится что нужно:
Код

<?php

  // функция превода текста с кириллицы в траскрипт

  function encodestring($st)

  {

    // Сначала заменяем "односимвольные" фонемы.

    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ ",

    "abvgdeeziyklmnoprstufh'ie_");

    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ",

    "ABVGDEEZIYKLMNOPRSTUFH'IE");

    // Затем - "многосимвольные".

    $st=strtr($st, 

                    array(

                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh", 

                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",

                        "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH", 

                        "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",

                        "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"

                        )

             );

    // Возвращаем результат.

    return $st;

  }
echo encodestring('бла бла.jpg');
?>




Автор: Vex 2.8.2007, 20:42
Спасибо!

Добавлено через 4 минуты и 43 секунды
а вообще наверное каждый раз гененрировать уникально имя для файла, латиницой без всяких траблов...

Автор: Всемогущий 3.8.2007, 05:18

Цитата(Vex @  2.8.2007,  22:10 Найти цитируемый пост)
есть какая-то функция, которая преобразовывает имя файла в приемлемый вид - латинские буквы и замена пробела знаком подчеркивания?


Может попробовать 

base64_encode()

Автор: Vex 3.8.2007, 06:37
всем спасибо, я рандомным путем пошел. base64_encode(), насколько я знаю обязательно надо использовать, если письмо именно прикрепляецца. у меня в письме тока приходит ссылка на файл smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)