отдача файлов скриптом ПХП и flashget

Alex800

Новичок
отдача файлов скриптом ПХП и flashget

Пробую реализовать отдачу php скриптом пользователю файлов с возможностью докачки, примерно как здесь http://www.sql.ru/forum/actualthread.aspx?tid=215654 но сталкнулся с проблемой flashget. На локальном хосте все нормально работает закачивает полность, но когда выложил на хост в сети flashget не докачивает файл и застывает на этом. Т.е. например файл размером 100 кБ он нормально тащит в 5 потоков, но как только остается до конца загрузки пару килобайт он останавливается и загрузка не может завершиться.

Может кто сталкивался с этим и как это лечиться и где копать?

-~{}~ 14.06.07 15:38:

Прблема докачки решилась, при использовании нового Flashget.
 

new_coder

Новичок
PHP:
header("Content-Type: application/octet-stream");
					header("Content-Disposition: attachment; filename=$name");
					header("Last-Modified: $time");
					header("Accept-Ranges: bytes");
					header("Content-Length: ".($size-$range));
					header("Content-Range: ".$range."-".$to."/".$size);
					fpassthru($hfile);
здесь $to должно правильно просчитываться, а во многих готовых скриптах отдают часть на скачивание до конца файла.


PHP:
$to = $range*2;
if($to > $size)
{
      $to = $size - 1;
}
у меня так стало скачиваться нормально
 

Alex800

Новичок
Спасибо! Возможно дело было как раз в этом для старого флешгета.

-~{}~ 14.06.07 18:37:

А подсчет передаваемого трафика пользователю Вы как нибудь реализовывали?

Cтандартный подход например:

PHP:
    ob_implicit_flush(true);
    $readlen = 1024;
    while (!feof($fp)) {
        print (fread($fp, $readlen));
	$downsize += $readlen;
    }
Не дает точных результатов, они всегда завышены по сравнению с размером передаваемого файла причем в случае Флешгет аж в 8 раз. Передаешь файл 60 Кб а переменная $downsize в итоге 300 Кб насчитывает.
 

Trianon

Новичок
здесь $to должно правильно просчитываться, а во многих готовых скриптах отдают часть на скачивание до конца файла.
здесь должно просчитываться не только $to, но и опущенное $from (которое в корне меняет семантику запроса)
и многодиапазонный вариант, и выдача 206 кода... и прочее, прочее, прочее...
 
Сверху