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

 PHP.SU

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


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

> Без описания
likvidator
Отправлено: 15 Августа, 2013 - 16:33:07
Post Id


Посетитель


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


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

[+]


В общем... бредовая задача,но необходимая:
Нужно чтоб скрипт скачивал файл в определенную деррикторию на сайте,при этом останавливал закачку каждые 5 сек,ждал 10 сек и возобновлял...
Нужен алгоритм или идея..с чего начать,как быть?
 
 Top
EuGen Администратор
Отправлено: 15 Августа, 2013 - 16:38:58
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Самое простое: использовать системные утилиты, например, wget (пример). Не всякий сервер поддерживает докачку, поэтому в общем случае придётся каждый раз пропускать данные до нужного смещения (по сути, скачивая их).
Как организовать докачку - смотрите пример


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
likvidator
Отправлено: 16 Августа, 2013 - 04:31:12
Post Id


Посетитель


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


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

[+]


все равно я в ступоре..не понимаю вот что: как пхп-скпипт,который качает файл заставить остановиться после 5-ти сек. скачки? Возобновить его я могу аяксом,поставив таймер и дергать его скажем,каждые 30 сек. Т.е я его дернуг,он 5 сек поработал и вырубился. Чз 25 сек я его опять дергаю?
 
 Top
EuGen Администратор
Отправлено: 16 Августа, 2013 - 09:40:23
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Установить таймер в самом скрипте. Скачивать в цикле, итеративно, по небольшим отрезкам данным (чтобы можно было после скачивания очередной секции проверить, не прошли ли 5 секунд). Альтернатива - set_time_limit(5), что небезопасно, ведь тогда нужно будет проверять то, что уже было скачано для того, чтобы понять текущее смещение.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
likvidator
Отправлено: 16 Августа, 2013 - 18:54:26
Post Id


Посетитель


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


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

[+]


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $fn = $_GET['name'];
  3.   $handle = fopen ($fn, 'rb');
  4.   $contents = "";
  5.   if(!$handle)
  6.     echo 'Error open source file';
  7.   else
  8.   {
  9.     while(!feof($handle))
  10.     {
  11.       $data = fread($handle, 8192);
  12.       $contents .= $data;
  13.           sleep(5);
  14.     }
  15.     fclose ($handle);
  16.  
  17.     // './download/' можно заменить, например, на $_GET['path']
  18.     $handle = fopen ('./download/' . basename($fn), 'wb');
  19.     if(!$handle)
  20.       echo 'Error create local file';
  21.     else
  22.     {
  23.       fwrite($handle, $contents);
  24.       fclose($handle);
  25.       echo 'Transfer complete';
  26.     }
  27.   }
  28. ?>

но хотелось бы динамически получать размер скачанных данных...
 
 Top
likvidator
Отправлено: 17 Августа, 2013 - 01:10:24
Post Id


Посетитель


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


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

[+]


эм...можно закрывать,забил я на этот бред и нашел более рациональное решение....
 
 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