|
|
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
Веб-сервер Apache/2.0.55, PHP/5.1.1 на Windows Server 2003 с файловой системой NTFS (собственный хостинг). Написал скрипт на php, который динамически формируют html-страницу с гиперссылками на файлы (на скачивание этих файлов с сервера). Но, когда кликаешь на эти ссылки, скачать невозможно. При этом ссылка прописана корректно (т.е. такой путь существует, соответствует реальному). Но когда на нее нажимаешь отображается ошибка "403 Forbidden". НО, если пользоваться Opera`ой 8.5 и ее встроенным менеджером закачек, то скачивается (получается права здесь не при чем)! Попробывал без php, просто открыл через браузер IE 6.0 путь xxx.ru/ххх/ххх/ххх/ххх/хххх/, показался Index of... пробовал из этой открывшейся директории скачивать. В результате файл скачивается, но у него название не с русскими буквами, а вида __N_N____°_»N__µN_N______µ ___µ_»__.rar. При попытке открыть файл, выдается сообщение: "Архив поврежден или имеет неизвестный формат" (скорее всего, файл не полностью скачивается). Если использовать в контекстном меню "Сохранить объект как...", то появляется окно "Загрузка файла", а далее сразу сообщение "Не удается загрузить файл ххх.ru c xxx.ru. Не удается открыть этот узел Интернет. Узел недоступен или не найден. Повторите попытку позднее." Мои предположения, в чем может быть проблема: 1) мешают права ntfs 2) из-за <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251" 3) почему-то Content-Type: text/html; charset=iso-8859-1 4) слишком короткий Content-Length: 313 ПОЖАЛУЙСТА, ПОМОГИТЕ РЕШИТЬ ДАННУЮ ПРОБЛЕМУ! Какие действия мне предпринять. -------------------------------------------------- Вот лог-файл одного из менеджеров закачек Thu Feb 23 13:26:53 2006 Connection: close Thu Feb 23 13:26:53 2006 HTTP/1.1 403 Forbidden Thu Feb 23 13:26:53 2006 Date: Thu, 23 Feb 2006 10:33:39 GMT Thu Feb 23 13:26:53 2006 Server: Apache/2.0.55 (Win32) PHP/5.1.1 Thu Feb 23 13:26:53 2006 Content-Length: 313 Thu Feb 23 13:26:53 2006 Connection: close Thu Feb 23 13:26:53 2006 Content-Type: text/html; charset=iso-8859-1 Thu Feb 23 13:26:53 2006 Ошибка! Thu Feb 23 13:26:53 2006 Пауза 5 сек. перед повтором Thu Feb 23 13:26:58 2006 Соединяемся с ххх.ru [IP=ххх.ххх.ххх.ххх:80] Thu Feb 23 13:26:59 2006 Соединение установлено Thu Feb 23 13:26:59 2006 GET /ххх/ххх/ххх/ххх/хххх/РК.rar HTTP/1.1 Thu Feb 23 13:26:59 2006 Host: ххх.ru Thu Feb 23 13:26:59 2006 Accept: */* Thu Feb 23 13:26:59 2006 Referer: http://ххх.ru/ххх/ххх.php Thu Feb 23 13:26:59 2006 Cookie: lang=russian; nuke_cpg_nuke_data=YTozOntzOjI6IklEIjtzOjMyOiIxNTViZjJlNTc2OTgyN2RhMzVhNGQ4NTljYTZlMTNhOCI7czoyOiJhbSI7aToxO3M6 NDoibGFuZyI7czo3OiJydXNzaWFuIjt9 Thu Feb 23 13:26:59 2006 User-Agent: Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) Thu Feb 23 13:26:59 2006 Pragma: no-cache Thu Feb 23 13:26:59 2006 Cache-Control: no-cache Thu Feb 23 13:26:59 2006 Connection: close Thu Feb 23 13:26:59 2006 HTTP/1.1 403 Forbidden Thu Feb 23 13:26:59 2006 Date: Thu, 23 Feb 2006 10:33:46 GMT Thu Feb 23 13:26:59 2006 Server: Apache/2.0.55 (Win32) PHP/5.1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 15:04:38 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
1. Не надо давать файлам имена с символами с кодом > 127. 2. Apache2 предполагает, что путь дан в UTF-8, если мне память не изменяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 16:06:54 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
1. Не надо давать файлам имена с символами с кодом > 127. >>>>> а как это определить? т.е. только английские символы? 2. Apache2 предполагает, что путь дан в UTF-8, если мне память не изменяет. >>>>> как задать путь в UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 18:57:14 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
*1. Не надо давать файлам имена с символами с кодом > 127. Видимо, Вы читали книгу Котерова. Но там он о другом писал, а именно: "В официальной документации сказано, что имя переменной может состоять не только из "английских" букв и цифр, но также и из любых символов, код которых старше 127, — в частности, и из "русских" букв! Однако я категорически не советую вам применять кириллицу в именах переменных—хотя бы из-за того, что в различных кодировках ее буквы имеют различные коды." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 20:56:30 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
Энтри_N3Видимо, Вы читали книгу Котерова.При чём здесь Котеров? Мне достаточно и личной практики, чтобы осознавать, что поведение Apache 1.x и Apache 2.x в данном случае - различно. И для этого не надо быть 7ми пядей во лбу. Хотите геморой? Имейте его. Не хотите - не имейте. Как не иметь геморой - я вам указал. Не нравится такое решение? Ждите, может кто подкинет другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2006, 23:36:45 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
* Энтри_N3Видимо, Вы читали книгу Котерова.При чём здесь Котеров? Мне достаточно и личной практики, чтобы осознавать, что поведение Apache 1.x и Apache 2.x в данном случае - различно. И для этого не надо быть 7ми пядей во лбу. Хотите геморой? Имейте его. Не хотите - не имейте. Как не иметь геморой - я вам указал. Не нравится такое решение? Ждите, может кто подкинет другое. На сколько я понимаю, Вы и Котеров расходитесь в мнениях. Вы писали, что Apache2 предполагает, что путь дан в UTF-8, если мне память не изменяет. Что означает "путь дан в UTF-8", как его задать? Как посмотреть, как сейчас у меня путь задан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 11:39:34 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
Вообще, когда скачиваю, русские буквы перекодируются в что-то типа %C1%D3%E8%C0.rar Может это поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 13:11:00 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
У меня на музыкалке всё работает как с рускими символами так и с пробелами. Просто перед вызовом кодируем путь: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2006, 22:30:41 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
2capitan Оч. понравилась идея, но не сработало. Ссылка получается рабочей, но когда по ней кликаешь, загружается страница 403 You don`t have access... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2006, 11:34:21 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
Решил проблему с помощью динамического переименования названия файлов в транслит, потому что с латиницей проблем нет. Но не самое идельное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 20:59:54 |
|
||
|
Как реализовать возможность скачивания файлов
|
|||
|---|---|---|---|
|
#18+
Энтри_N3Решил проблему с помощью динамического переименования названия файлов в транслит, потому что с латиницей проблем нет. Но не самое идельное решение. Самое! Бред использовать кирилицу в путях!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2006, 21:43:09 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33563072&tid=1476648]: |
0ms |
get settings: |
7ms |
get forum list: |
23ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
105ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 460ms |

| 0 / 0 |
