[php] докачка файла
Range надо обрабатывать...
это что такое?
я ща сам поищу, не надо RTFM
range поможет ?
это же ранговая сортировка массивов!
И каким образом это же ранговая сортировка массивов!
PEAR::HTTP_Download
тот, про который говорилось...
Твой, может, и не поможет, а Правда и не вчитывался особо..
Кто разботает, если не в падлу, выложите код, для решения обсуждаемой проблемы....
Протокол HTTP позволяет клиенту указать какую часть ответа сервера он хочет получить.
http://www.rsdn.ru/Forum/Message/888777.htm
вот в общем. Рабочий пример. Только что проверил.
вот в общем. Рабочий пример. Только что проверил.
даже на сервак.....
if (!file_exists($file_name
{
header("HTTP/1.0 404 Not Found");
exit;
}
$file_size = filesize($file_name);
$file_time = date("D, d M Y H:i:s T", filemtime($file_name;
$file_handle = fopen($file_name, "rb");
if (!$file_handle)
{
header("HTTP/1.0 403 Forbidden");
exit;
}
$file_range = array("from" => 0, "to" => $file_size);
if (array_key_exists("HTTP_RANGE", $_SERVER
{
if (preg_match("/bytes=(\d+)-(\d*)/", $_SERVER["HTTP_RANGE"], $matches
{
$file_range = array("from" => $matches[1], "to" => ($matches[2] == "") ? $file_size : $matches[2]);
if ($file_range)
{
fseek($file_handle, $file_range["from"]);
}
}
}
$file_data = fread($file_handle, $file_range["to"] - $file_range["from"] + 1);
fclose($file_handle);
if ($file_range["from"] != 0)
{
header("HTTP/1.0 206 Partial Content");
}
else
{
header("HTTP/1.0 200 OK");
}
header("Content-Type: application/octet-stream");
header("Content-Length: ".($file_range["to"] - $file_range["from"] + 1;
header("Content-Disposition: attachment; filename=".$file_name);
header("Content-Range: bytes ".$file_range["from"]."-".$file_range["to"]."/".$file_size);
header("Last-Modified: ".$file_time);
header("ETag: \"".md5($file_name.$file_size.$file_time)."\"");
header("Accept-Ranges: bytes");
print $file_data;
exit;
спасибо..
Оставить комментарий
vlfdimir58
Отдаю файл вот так через скрипт:$rez[9] - это имя файла. $filename - путь к файлу.
Проблема такая. Я через этот скрипт отдаю относительно большие файлы. Те, кто сидят на модеме долго ждут. И если случается обрыв, то закачивать приходится все сначала.
Как реализовать возможность докачки файла?
Это вообще возможно?