Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скачивание файлов через скрипт
 
 автор: Shorr Kan   (24.03.2008 в 20:49)   письмо автору
 
 

Мне нужно организовать скачивание файлов через скрипт.


<?
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

   
 
 автор: cheops   (24.03.2008 в 21:07)   письмо автору
 
   для: Shorr Kan   (24.03.2008 в 20:49)
 

А переменная $file точно не пустая?

   
 
 автор: Shorr Kan   (25.03.2008 в 03:03)   письмо автору
 
   для: 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;
?>

   
 
 автор: cree   (24.03.2008 в 23:10)   письмо автору
 
   для: Shorr Kan   (24.03.2008 в 20:49)
 

1. что возвратит echo $set; (перед выводом заголовков), и вообще, ЗАЧЕМ нужна эта строка? Может, $file = basename($zip); ??
2. а имя файла, допустим, пробелов не содержит?
3. не проще readfile() пользовать?

   
 
 автор: Shorr Kan   (25.03.2008 в 03:05)   письмо автору
 
   для: cree   (24.03.2008 в 23:10)
 

1. Да, именно $file = basename($zip); . Как я написал выше - это я просто опечатался здесь, на форуме. В коде именно $file = basename($zip);

2. Имя файла: 142.zip

3. Какая разница? Что в лоб, что по лбу...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования