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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Alex131
Отправлено: 29 Ноября, 2012 - 14:54:04
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июнь 2012  


Помог: 0 раз(а)




Здравствуйте, сделал скачивание с сайта с помощью вот такого скрипта:
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.  

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



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Alex131 пишет:
CURLOPT_HEADER, 1);

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


-----
PostgreSQL DBA
 
 Top
Alex131
Отправлено: 29 Ноября, 2012 - 15:03:59
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июнь 2012  


Помог: 0 раз(а)




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

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

Если честно я не очень понимаю этот скрипт, по этому и вопрос тоже)

(Отредактировано автором: 29 Ноября, 2012 - 15:04:42)

 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2012 - 15:13:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Включен вывод заголовков ответа сервера. Оные заголовки будут находиться перед файлом и, естественно, ломать все попытки прочитать файл по его спецификации, которая становится грубо нарушена.
Если открыть файл каким-нибудь тупым текстовым редактором - будут видны.


-----
PostgreSQL DBA
 
 Top
Alex131
Отправлено: 29 Ноября, 2012 - 15:48:16
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июнь 2012  


Помог: 0 раз(а)




Мне подсказали что этот файл можно упростить до вот такого:
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. }

Но проблема осталась.
 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 15:51:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Простите, но хочеться накричать на Вас Радость Радость Радость

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

Мелкий пишет:
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. }


П.С. Простите если оскорбил


Отредактировано модератором: Мелкий, 29 Ноября, 2012 - 15:55:14
я не повторяю-повторяю =) Часть сообщения продублировалась до и после добавления.
 
 Top
Alex131
Отправлено: 29 Ноября, 2012 - 16:01:49
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июнь 2012  


Помог: 0 раз(а)




esterio
Не нужно здесь ни на кого кричать Радость

Я убрал эту строку но нечего не изменилось, потом я убрал половину кода но, это тоже нечего не поменяло.
 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 16:03:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




А УРЛь у Вас верный???

Что приходит в $result смотрели.
 
 Top
Alex131
Отправлено: 29 Ноября, 2012 - 16:08:42
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июнь 2012  


Помог: 0 раз(а)




esterio проблема была в www.. Спасибо за помощь)
(Добавление)
esterio А еще такой вопрос, отлично скачивает mp3, zip, а вот rar выдает ошибку, может Вы знаете почему?
 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 16:44:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




ну тут не могу ничем помочь. Может битий файл.

А какую ошыбку выдает?
 
 Top
Alex131
Отправлено: 29 Ноября, 2012 - 17:10:06
Post Id



Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Июнь 2012  


Помог: 0 раз(а)




ошибка: архив поврежден или имеет неверный формат. Я взял файл rar и сделал из него zip, все стало нормально открываться.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB