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

  • Автор темы Автор темы dimazay
  • Дата начала Дата начала

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');
?>
 
как сделать докачку при скачивании файла можно найти на этом сайте воспользовавшись поиском
доработать свои скрипты для поддержки докачки будет уже совсем просто
 
ты, верно, не понял
один скрипт отдает файл (с нужного места, если надо)
другой скрипт принимает его
в первом - fseek
во втором - filesize, sockets, fputs, fgets
 
Tor
Ну, отдается с нужного места файл усилиями того веб-сервера...
 
Хрошо.
Помоему непоняли меня.

Поставлю вопрос по другому:
КАК У ЛЮБОГО ВЕБСЕРВЕРА ЗАПРОСИТЬ ФАЙЛ С СЕРЕДИНЫ?
НАПРИМЕР КАК ЭТО ДЕЛАЕТ REGET?
 
dimazay
reget (или flashget), кажись, логи выдает, какие он там заголовки шлет и получает...
 
dimazay
смотреть мой пост выше. Так и делает.
Range: bytes=2131234-2431241111111
 
клиент посылает Range: bytes=[from]-

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

и передавать тело файла с [from+1] байта
 
nerezus
У него обратная задача, ему запрос надо послать, а не отвечать.
 
kruglov
читаем внимательнее
ему и послать и ответить надо
 
Сверху