Как сделать докачку файла с сайта на сайт???

dimazay

Guest
Как сделать докачку файла с сайта на сайт???

У меня есть скрипт который перегружает файл с одного сервера
на мой сервер в файл log/data.zip
Если файл очень большой, закачка может по разным причинам
прерыватся всё надо начинать заново
Как организовать докачку?
PHP:
<?php
function fetchURL( $url ) {
$url_parsed = parse_url($url);
$host = $url_parsed["host"];
$port = $url_parsed["port"];
if ($port==0)
$port = 80;
$path = $url_parsed["path"];
if ($url_parsed["query"] != "")
$path .= "?".$url_parsed["query"];
$out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
$fp = fsockopen($host, $port, $errno, $errstr, 30);
fwrite($fp, $out);
$f = fopen("log/data.zip","a");
$body = false;
while (!feof($fp)) {
$s = fgets($fp, 1048576);
fputs($f,$s);
if ( $body )


if ( $s == "\r\n" )
$body = true;
}

fclose($fp);
fclose($f);
return "Ok";
}
echo fetchURL('http://www.myserver.com/file.zip');
?>
 

Tor

Новичок
как сделать докачку при скачивании файла можно найти на этом сайте воспользовавшись поиском
доработать свои скрипты для поддержки докачки будет уже совсем просто
 

Tor

Новичок
ты, верно, не понял
один скрипт отдает файл (с нужного места, если надо)
другой скрипт принимает его
в первом - fseek
во втором - filesize, sockets, fputs, fgets
 

kruglov

Новичок
Tor
Ну, отдается с нужного места файл усилиями того веб-сервера...
 

dimazay

Guest
Хрошо.
Помоему непоняли меня.

Поставлю вопрос по другому:
КАК У ЛЮБОГО ВЕБСЕРВЕРА ЗАПРОСИТЬ ФАЙЛ С СЕРЕДИНЫ?
НАПРИМЕР КАК ЭТО ДЕЛАЕТ REGET?
 

kruglov

Новичок
dimazay
reget (или flashget), кажись, логи выдает, какие он там заголовки шлет и получает...
 

nikit87

Новичок
dimazay
смотреть мой пост выше. Так и делает.
Range: bytes=2131234-2431241111111
 

nerezus

Вселенский отказник
клиент посылает Range: bytes=[from]-

надо ответить:
HTTP/1.1 206 Partial Content
Content-Length: [total-from]
Content-Range: bytes [from]-[total-1]/[total]

и передавать тело файла с [from+1] байта
 

kruglov

Новичок
nerezus
У него обратная задача, ему запрос надо послать, а не отвечать.
 

Tor

Новичок
kruglov
читаем внимательнее
ему и послать и ответить надо
 
Сверху