[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скачивание файла через скрипт
darrios
Используется следующий метод для скачивания файла. Но когда скачивается не показывает сколько весит файл на сервере. Кто знает почему? Вот код
public static function download_file($filepath, $mimetype = 'application/octet-stream')
{
$fsize = filesize($filepath);
$ftime = date('D, d M Y H:i:s T', filemtime($filepath));
$filename = basename($filepath);

if(Model_Tools::browserDetecter() == 'firefox') $filename = preg_replace("/\s+/", "_", $filename);

$fd = @fopen($filepath, 'rb');
$range = 0;

if (isset($_SERVER['HTTP_RANGE']))
{
$range = $_SERVER['HTTP_RANGE'];
$range = str_replace('bytes=', '', $range);
list($range, $end) = explode('-', $range);

if (!empty($range))
{
fseek($fd, $range);
}
}


if ($range)
{
header($_SERVER['SERVER_PROTOCOL'].' 206 Partial Content');
}
else
{
header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
}

header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Last-Modified: '.$ftime);
header('Accept-Ranges: bytes');
header('Content-Length: '.($fsize - $range));

if($range)
{
header("Content-Range: bytes $range-".($fsize - 1).'/'.$fsize);
}
header('Content-Type: '.$mimetype);

$downloaded = 0;

while (!feof($fd) && !connection_status() && ($downloaded < $fsize))
{
echo fread($fd, 512000);
$downloaded += 512000;
flush();
}

fclose($fd);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.