| |
|
|
| | Вот код скрипта скачивания:
<?php
$file = "archive/files/".$_GET['d']."/".$_GET['f'];
if(file_exists($file))
{
$str = "Content-Disposition: attachment; filename=" .$_GET['f'];
header($str);
header("Content-type: application/octet-stream");
echo file_get_contents ($file);
}
?>
|
1. Он работает, но с ошибкой. При загрузке файл имеет расширение *.htm и тип text/html, хотя должен иметь расширение *.rar.
2. На локальной машине работает, как надо, но на удалённом сервере не работает.
Вопрос: Что мне ещё надо добавить для полной работоспособности скрипта? | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 01:34)
| | | 1. Расширение *.rar должно быть тока тогда, когда файл, который вы запрашиваете тоже такое же расширение имеет.
2. Вроде заголовок типа файла должен быть перед другими... | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 01:34)
| | |
$str = '"' . $_GET['f'] . '"';
header("Content-type: application/octet-stream; name=$str");
header("Content-Disposition: attachment; filename=$str");
|
| |
| |
|
|
| |
|
|
| |
для: Trianon
(28.08.2006 в 09:34)
| | | Не помогает. | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 11:06)
| | | Как выглядит строка вызова скрипта? | |
| |
|
|
| |
|
|
| |
для: Trianon
(28.08.2006 в 11:16)
| | | download.php?d=files&f=file.rar | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 11:34)
| | | Советую проверить, есть ли файл. А полный путь писать от корня сервера. | |
| |
|
|
| |
|
|
| |
для: Trianon
(28.08.2006 в 12:27)
| | | Если прописывааю полный путь (http://www.mysite.ru/archive/files/......), мне пишет, что ттакого файла нет! (я дописал к коду скрипта
else echo "Такого файла не существует!";
| )
Я в адресной строке написал прямой путь к файлу - мне выдало окно "сохранить" - как надо. =\
Что модет быть не так? Я ума не приложу! =\\\ | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 12:52)
| | | Это сетевой путь - Trianon имеет ввиду абсолютный путь от корня диска /usr/.../archive/files/... | |
| |
|
|
| |
|
|
| |
для: cheops
(28.08.2006 в 12:56)
| | | Так я испытываю на удалённом сервере - на локальной машине работает всё хорошо. | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 13:05)
| | | Узнайте путь к скрипту на удалённой машине при помощи функции phpinfo()
| |
| |
|
|
| |
|
|
| |
для: cheops
(28.08.2006 в 13:16)
| | | Я случайно наткнулся на это, мне выдала aeyrwbz phpinfo(); :
HTTP Headers Information
Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
Тут нет aplication/x-rar-compressed. Может быть из-за этого и не качает архивы? | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 13:42)
| | | */*;q=0.1 - включает в себя любые типы. В т.ч. и рар.
Какая разница, что воспринимает клиент, если Вы файл на сервере не в состоянии найти? | |
| |
|
|
| |
|
|
| |
для: Trianon
(28.08.2006 в 13:49)
| | | Ну я указал
$_SERVER['DOCUMENT_ROOT']."/archive/files/".$_GET['d']."/".$_GET['f'];
| в коде скрипта, но по-прежнему имя файла остаётся file.htm.
А в phpinfo(); указано, что $_SERVER['DOCUMENT_ROOT'] = /home/users/m/mysite/docs | |
| |
|
|
| |
|
|
| |
для: Freddie_X
(28.08.2006 в 14:38)
| | | если вывети $file - там получается ожидаемое имя с путем или нет? | |
| |
|
|
| |
|
|
| |
для: Trianon
(28.08.2006 в 15:22)
| | | Я что-то изменил, таперь выводятся каракули.
Да, путь полностью совпадает с нужным | |
| |
|
|