[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: кодировка файла при его перемещении функцией...
Страницы: 1, 2
Rodger1956630
Вот рабочий код:
$upload_filename = iconv('utf-8', 'cp1251', $upload_filename);
@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename)
or handle_error("возникла проблема сохранения вашего изобразения " .
"в его постоянном месте.",
"ошибка, связанная с правами доступа при перемещении " .
"файла в {$upload_filename}");

В функции iconv сказано, что первый параметр входящий, а второй исходящий. Так вот, у меня на самом деле кодировка не 'ср1251' как мы раньше указывали! Вот, эти параметры я поменял местами. Ну и упростил третий параметр до такой формы: $upload_filename. А изначально была вот: $_FILES[$upload_filename]['name']);
Rodger1956630
Теперь все файлы сохраняются на диске в нормальной кодировке, вот пример: Ольга Ивановна.JPG
Rodger1956630
Спасибо за сотрудничество! )))) Помогли мне разобраться с проблемой.
twin
Ну и зря. Кириллица в назвниях файлов, это очень плохо. Многие nix-овские файловые системы их обрабатывют некорректно. В дальнейшем могут возникнуть проблемы, допустим с теми же бэкапами. Это же многобайтная кодировка, не стоит эксперементировать.

И уж тем более с пробелми.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Rodger1956630
Ну ясно. Не в этом дело. Я никогда не называю файлы русскими именами. Тут, просто нужно было решить эту проблему и это получилось. Но Вы правы, проблемы начали появляться в других местах.)) Поэтому, мне придётся отказаться от принятия такого решения.
YVSIK
пока читал ) только это в голове и прозвучало, а почему собственно никто не задался таким вопросом, что ТС так и делает
файлы обзывает кирилическими буквами)) , и все же нашелся ответ который я хотел задать
Цитата (twin @ 7.03.2014 - 22:10)
Ну и зря.

wink.gif
от себя продолжу,
подавляющее большинство серверов, работают под ОС линукс, и никсов, видовские никто во внимание не принимает.
Чуток отступление, почему так? а потому из-за совместимости версий, винда таскает за собой челый ворох ненужной инфы, от старых систем так она устроена изначально, посему как бы бил не пыжился, она на ИМХО взгляд доживает последние дни, хоть и выпустила новые системы под телефоны и еже с ними, в этом случае они такие требуют ресурсов.... и ТД...
теперь про тему,
кирилических буков в отличии от латинницы гораздо больше и воспринимаются они ОС - сервером, не совсем корректно, как мы это делаем, и её приходится все это приводит к удобно-читаемому виду потому и перкодирует твои символы как ей удобно, осталось задаться вопросом, а накой тебе эти танцы с бубном, все это туда сюда перекодировать, наверное чтоб-БИЛО Ето наверное единственный случай

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
revisor
Киррилица в названии файла это мина замедленного действия. Стоит сделать хостеру какието телодвижения или вам копировать с хоста по фтп и результат будет непредсказуемый. Лучьший выход выработать привычку именовать файлы латиницей и не выделываться
Гость_Виталий
У меня на сервере кодировка utf-8 а винда я так понимаю кодирует в cp1251
Вот мой кусок кода который нормально преобразует одну кодировку в другую

<?php

if($_SERVER['REQUEST_METHOD']=='POST'){
print_r($_FILES);

$tmp = $_FILES['user_file']['tmp_name'];
$name = (string)$_FILES['user_file']['name'];
$name1=iconv('utf-8', 'cp1251', $name);
echo $name;
move_uploaded_file($tmp, 'upload/'.$name1);
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.