Apache + PHP4 Нужно загружать файлы с русскими именами. С английскими всё замечательно, в БД пишется ID и URL файла, а русские грузиться не хотят. Как решить проблему?
keymaster а ты ссылки кодируй urlencode(); <a href="/?filename='.urlencode('имя файла').'">ссылка номер один</a>
Не совсем понял... Файл грузиться через <INPUT NAME="filename" TYPE="file">, но потом, если имя файла - русское, то $_FILES["myfile"]["name"] = "?????????????.txt" И сохраняться он не желает.
keymaster кодировка страницы какая? вот. все пашет. тренируйся. http://440hz.ru/trash/upload/ PHP: <? if(isset($_FILES['file'])) { print('<pre>'); print_r($_FILES['file']); } ?> <html> <body> <form method=POST ENCTYPE='multipart/form-data'> <input type=file name=file> <input type=submit value=" загрузить"> </form> </body> </html>
спасибо, разобрался в чем проблема. если не ставить <meta http-equiv="content-type" content="text/html; charset=windows-1251" /> то не работает. если поставить - работает. Применительно к Opera.
keymaster а ты выдай header в одной кодировке, а мета тэг в другой и посмотри какой броузер какую кодировку подствит?
сейчас гляну... появилась ещё проблема, но она по апачу больше: Код (Text): if (copy($myfile, $_SERVER['DOCUMENT_ROOT'].$myfile_name)) { $fp = $_SERVER['DOCUMENT_ROOT'].$myfile_name; print("Сохранен: : ".$fp."<br>"); ?> <a href="<?php echo urlencode($myfile_name) ?>">скачать</a><?php } Появляется ссылка, но при клике на ней вылетает "нет прав для доступа к этому файлу".
keymaster ты посмотри куда он на самом деле записал. и попробуй руками его получить, а потом сравни ссылку ... я бы сделал для начала <a href="/'.что-то-типа-там.'">, т.юе. принудительно от корня, а то если у тебя а вдресной строке имя скрипта торчит, то он относительно его и запросит
Что формирует скрипт: http://localhost:8080/%F2%E5%EA%F1%F2+%F4%E0%E9%EB.txt Ручной ввод: http://localhost:8080/текст%20файл.txt Фактически файл лежит в htdocs ссылки практически совпадают, но во втором случае - выводит текст файла, а в первом пишет You don't have permission to access текст+файл.txt on this server.
угу. очень интересно, что после того, как я убрал из формируемой скриптом ссылки urlencode, то все заработало. Причина феномена неизвестна.
keymaster известна - броузер сам пытается перекодироать при вызове, но сие НЕ правильно. нужно самому.
keymaster за тебя работу делает броузер. эо в корне не верно. ты ему уже должен формировать правильные ссылки.
Тогда вопрос - как сформировать правильную ссылку? Я так и не понял, почему прошлый вариант (с использованием urlencode) не работает...