Форум → Программирование → PHP для идиотов → Перевод названия файла в транслит
Перевод названия файла в транслит
Страницы: ← Следующая страница →
-
Добрый вечер!
Есть у меня скрипт, который загружает на сервер файлы. И есть функция, которая переводит названия этих файлов в транслит.
Копирование файла на сервер из временной папки:
if(copy($_FILES["filename"]["tmp_name"],"../files/".(str_replace(' ', '_', $_FILES["filename"]["name"]))))
Функцию переписывать не буду, но суть в том что переменные объявляю как аргументы. Перевод самого названия файла получается: encodestring($_FILES["filename"]["name"]). А как это название файла в транслите использовать в процессе его копирования на сервер (выбираем файл русский, а на сервер должен загрузиться этот же файл но с названием на транслите).
Пробывал переведенное в транслит значение названия файла присвоить переменной, присваиавается, но происходит ошибка из-за того что в результате получается неверный путь для записи файла. т.е. если
if(copy($_FILES["filename"]["tmp_name"],"../files/".$namefail))
Путь получается: Название файла($namefail)../files/
А должно: ../files/Название файла($namefail)
В чем проблема не понятно. Подскажите пожулуйста. -
8 апреля 2008 г. 6:25, спустя 21 минуту 58 секунд
Нифига не понял. Полный код в студию.if(copy($_FILES["filename"]["tmp_name"],"../files/".$namefail))
Путь получается: Название файла($namefail)../files/
А должно: ../files/Название файла($namefail)
echo $namefile; что выдает?
И echo "../files/".$namefail; что? -
8 апреля 2008 г. 6:40, спустя 15 минут 10 секунд
Загрузка файла на сервер
// функция превода текста с кириллицы в траслит
function encodestring($st)
{
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
"abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
$st=strtr($st,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
}
//ПРОВЕРКА
$p = "../files/";
$name_file = $_FILES['filename']['name'];
$z = encodestring($name_file); //Работает
$uploadfile = $p.$z;
echo $uploadfile; // ПЕРЕМЕННЫЕ МЕНЯЮТСЯ МЕСТАМИ
// Копирование файла из временной папки на сервер
if(copy($_FILES["filename"]["tmp_name"],"../files/".(str_replace(' ', '_', $_FILES["filename"]["name"])))) //ВСЕ РАБОТАЕТ
//А еСЛИ ТАК
if(copy($_FILES["filename"]["tmp_name"],"../files/".$z)) //НЕ РАБОТАЕТ
{
echo("<p>Файл успешно загружен <br><br>");
echo("Сейчас Вы будете перенаправленны на предыдущую страницу.<br><br>");
echo("<b>Характеристики файла:</b> <br>");
echo("Имя файла: ");
echo(str_replace(' ', '_', $_FILES["filename"]["name"]));
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
//ЗАНЕСЕНИЕ ДАННЫХ В БД
$link = '<a href=http://kursovoy/sait/files/'.(str_replace(' ', '_', $_FILES["filename"]["name"])).'>'.$_FILES["filename"]["name"].'</a>';
$query = "INSERT INTO lessons VALUES (null, '$department', '$kurs', '$lesson', '$link')";
$result = mysql_query($query);
}
else
{
echo("Ошибка загрузки файла");
} ?>
В случае использования функции перевода ошибку выдает на строке где копируется файл из временной папки на сервер. -
-
8 апреля 2008 г. 21:35, спустя 14 часов 10 минут 23 секунды
Ну вот encodestring($name_file). Если я не ошибаюсь в том случае если значения переменных объявляются как аргументы ретурн не нужен -
8 апреля 2008 г. 23:26, спустя 1 час 50 минут 54 секунды
Где return в функции?
Что выдает var_dump ($z); ?
Да ты прав был. С ретурном все ок. Спасибо. -
15 апреля 2008 г. 5:00, спустя 6 дней 5 часов 33 минуты
решил не открывать новый топик, спрошу здесь. здесь http://php.ru/manual/features.file-upload.html нашел пример загрузки картинок на сервер. но так и не смог найти где и как при загрузке менять название файла.
$uploaddir = '/home/public_html/test/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print "Possible file upload attack! Дополнительная отладочная информация:\n";
print_r($_FILES);
}
print "</pre>";
тоесть как бы не назывался файл на сервер что бы он залился как 1.jpg например -
15 апреля 2008 г. 5:13, спустя 13 минут 19 секунд
Второй параметр функции move_uploaded_file.
Совсем не обязательно его вычислять так извращенно как в этом примере.
Пропиши руками, что тебе надо туда.
И вообще, какой идиот придумал определять директорию для загрузки картинок абсолютным путем? -
15 апреля 2008 г. 5:21, спустя 7 минут 53 секунды
Алекс вышел на тропу войны и устраивает разнос всем и вся ;)
Ну вобще правильно. А то расслабились все.from TRIAL with LOVE -
15 апреля 2008 г. 5:24, спустя 3 минуты 31 секунду
в том числе и ты, иди книгу покупайвсе умрут, а я изумруд -
15 апреля 2008 г. 5:28, спустя 3 минуты 56 секунд
Второй параметр функции move_uploaded_file.
Совсем не обязательно его вычислять так извращенно как в этом примере.
Пропиши руками, что тебе надо туда.
тоесть move_uploaded_file($_FILES['userfile']['tmp_name'], '1.jpg') ???
И вообще, какой идиот придумал определять директорию для загрузки картинок абсолютным путем?
подскажи как лучше. просто я взял за образец то что нашел, вот и вожусь сним -
15 апреля 2008 г. 5:35, спустя 7 минут
Второй параметр функции move_uploaded_file.
Совсем не обязательно его вычислять так извращенно как в этом примере.
Пропиши руками, что тебе надо туда.
тоесть move_uploaded_file($_FILES['userfile']['tmp_name'], '1.jpg') ???
ну попробуй…
там же, где ты взял этот пример там все про это написановсе умрут, а я изумруд -
15 апреля 2008 г. 5:58, спустя 23 минуты 1 секунду
получилось, но только так:$uploaddir = '/home/ibertechg/domains/ibertech.ge/public_html/test/';
$blin = $row_Recordset1['image_id']+1 . '.jpg';
$uploadfile = $uploaddir . $blin;там же, где ты взял этот пример там все про это написано
про абсолютный и относительный путь я там ничего не нашел… -
15 апреля 2008 г. 6:01, спустя 2 минуты 43 секунды
Ты вобще не знаешь что такое относительный а что такое абсолютный путь? Или ты не знаешь как это применить для данного скрипта?from TRIAL with LOVE -
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!