Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не открываются скачанные файлы
Форумы портала PHP.SU » » Вопросы новичков » Не открываются скачанные файлы

Страниц (1): [1]
 

1. Alex131 - 29 Ноября, 2012 - 14:54:04 - перейти к сообщению
Здравствуйте, сделал скачивание с сайта с помощью вот такого скрипта:
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['link'])) $link = $_POST['link'];
  3.  
  4. if (isset($link)) {
  5.  
  6. $ch = curl_init();
  7. curl_setopt($ch, CURLOPT_HEADER, 1);
  8. curl_setopt($ch, CURLOPT_FAILONERROR, 1);
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10. curl_setopt($ch, CURLOPT_URL, "http://www.masterbody.net/pages/books".$link);
  11. $result = curl_exec($ch);
  12.  
  13. if ($result)
  14. {
  15.     header('Content-type: application/octet-stream');
  16.     header('Content-Disposition: attachment; filename=' . $link);
  17.     header('Content-Length: ' . strlen($result));
  18.     echo $result;
  19.     exit();  
  20. }
  21. }
  22.  

Файлы скачивает но при их открытии компьютер выдает ошибки. Если скачать архив то ошибка о том что архив поврежден или неизвестный формат файла. И само скачивание происходит за секунду, я так понял что реально ничего не качается. Помогите исправить. Спасибо!
2. Мелкий - 29 Ноября, 2012 - 14:56:57 - перейти к сообщению
Alex131 пишет:
CURLOPT_HEADER, 1);

Что будет перед файлом?
3. Alex131 - 29 Ноября, 2012 - 15:03:59 - перейти к сообщению
Мелкий пишет:
Alex131 пишет:
CURLOPT_HEADER, 1);

Что будет перед файлом?

Если честно я не очень понимаю этот скрипт, по этому и вопрос тоже)
4. Мелкий - 29 Ноября, 2012 - 15:13:41 - перейти к сообщению
Включен вывод заголовков ответа сервера. Оные заголовки будут находиться перед файлом и, естественно, ломать все попытки прочитать файл по его спецификации, которая становится грубо нарушена.
Если открыть файл каким-нибудь тупым текстовым редактором - будут видны.
5. Alex131 - 29 Ноября, 2012 - 15:48:16 - перейти к сообщению
Мне подсказали что этот файл можно упростить до вот такого:
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['link'])) $link = $_POST['link'];
  2.  
  3. if (isset($link)) {
  4. header('Content-type: application/octet-stream');
  5. header('Content-Disposition: attachment; filename=' . $link);
  6. exit();
  7. }

Но проблема осталась.
6. esterio - 29 Ноября, 2012 - 15:51:42 - перейти к сообщению
Простите, но хочеться накричать на Вас Радость Радость Радость

Вам Мелкий указал на ошыбку

Мелкий пишет:
CURLOPT_HEADER, 1);


Неужели так сложно убрать ету строку кода. И будет Вам счастье.

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['link'])) $link = $_POST['link'];
  2.  
  3. if (isset($link)) {
  4.  
  5. $ch = curl_init();
  6. curl_setopt($ch, CURLOPT_FAILONERROR, 1);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_URL, "http://www.masterbody.net/pages/books".$link);
  9. $result = curl_exec($ch);
  10.  
  11. if ($result)
  12. {
  13.     header('Content-type: application/octet-stream');
  14.     header('Content-Disposition: attachment; filename=' . $link);
  15.     header('Content-Length: ' . strlen($result));
  16.     echo $result;
  17.     exit();  
  18. }
  19. }


П.С. Простите если оскорбил
7. Alex131 - 29 Ноября, 2012 - 16:01:49 - перейти к сообщению
esterio
Не нужно здесь ни на кого кричать Радость

Я убрал эту строку но нечего не изменилось, потом я убрал половину кода но, это тоже нечего не поменяло.
8. esterio - 29 Ноября, 2012 - 16:03:32 - перейти к сообщению
А УРЛь у Вас верный???

Что приходит в $result смотрели.
9. Alex131 - 29 Ноября, 2012 - 16:08:42 - перейти к сообщению
esterio проблема была в www.. Спасибо за помощь)
(Добавление)
esterio А еще такой вопрос, отлично скачивает mp3, zip, а вот rar выдает ошибку, может Вы знаете почему?
10. esterio - 29 Ноября, 2012 - 16:44:30 - перейти к сообщению
ну тут не могу ничем помочь. Может битий файл.

А какую ошыбку выдает?
11. Alex131 - 29 Ноября, 2012 - 17:10:06 - перейти к сообщению
ошибка: архив поврежден или имеет неверный формат. Я взял файл rar и сделал из него zip, все стало нормально открываться.

 

Powered by ExBB FM 1.0 RC1