|
|
|
| Мне нужно организовать скачивание файлов через скрипт.
<?
ob_end_clean();
$set=basename($zip);
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($zip));
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=".$file);
$fp=fopen($zip,"r");fpassthru($fp);
exit;
?>
|
$file - имя файла
$zip - путь к нему от корня
У меня работает. У всех, кого я просил проверить - работает. Все основные браузеры.
А те, кто реально будут это использовать... говорят, что у них не работает. Даже хитрее - три разных файла (ссылки на них на одной страничке)... первый скачивается, а другие два "даже не предлагает скачать" (напомню, что лично мне и многим проверяющим - еще как предлагает). Но это и не ошибка компьютера юзера, ибо жалуются два разных человека. В чем может быть дело? Файл, как понятно из кода - *.zip | |
|
|
|
|
|
|
|
для: Shorr Kan
(24.03.2008 в 20:49)
| | А переменная $file точно не пустая? | |
|
|
|
|
|
|
|
для: cheops
(24.03.2008 в 21:07)
| | Точно не пустая. На самом деле, я тут ошибся, пока перепечатывал
Истинный код таков:
<?
ob_end_clean();
$file=basename($zip);
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($zip));
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=".$file);
$fp=fopen($zip,"r");fpassthru($fp);
exit;
?>
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(24.03.2008 в 20:49)
| | 1. что возвратит echo $set; (перед выводом заголовков), и вообще, ЗАЧЕМ нужна эта строка? Может, $file = basename($zip); ??
2. а имя файла, допустим, пробелов не содержит?
3. не проще readfile() пользовать? | |
|
|
|
|
|
|
|
для: cree
(24.03.2008 в 23:10)
| | 1. Да, именно $file = basename($zip); . Как я написал выше - это я просто опечатался здесь, на форуме. В коде именно $file = basename($zip);
2. Имя файла: 142.zip
3. Какая разница? Что в лоб, что по лбу... | |
|
|
|