断点继传
上一篇 /
下一篇 2007-11-02 17:51:50
/ 个人分类:技术技巧
/*
* @url: 文件地址
* @filename: 要保存的文件名
*/
function _download($url, $filename)
{
// 获得文件大小, 防止超过2G的文件, 用sprintf来读
$filesize = sprintf("%u", filesize($url));
if (!$filesize)
{
return;
}
header("Content-type:application/x-msdownload\n"); //application/octet-stream
header("Content-type:unknown/unknown;");
header("Content-disposition: inline; filename=\"".$filename."\"");
header('Content-transfer-encoding: binary');
if ($range = getenv('HTTP_RANGE')) // 当有偏移量的时候,采用206的断点续传头
{
$range = explode('=', $range);
$range = $range[1];
header("HTTP/1.1 206 Partial Content");
header("Date: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($url))." GMT");
header("Accept-Ranges: bytes");
header("Content-Length:".($filesize - $range));
header("Content-Range: bytes ".$range.($filesize-1)."/".$filesize);
header("Connection: close"."\n\n");
}
else
{
header("Content-Length:".$filesize."\n\n");
$range = 0;
}
$fp = fopen($url, 'rb');
fseek($fp, $range);
while ($bbsf = fread($fp, 4096))
{
echo $bbsf;
}
fclose($fp);
}
相关阅读:
- 关于ZEND STUDIO开发中的模板技巧 (yiqing666, 2007-10-16)
- div滚动条 (phperwuhan, 2007-10-22)
- 不错的正则打油诗 (phperwuhan, 2007-10-26)
- javascript svg html xhtml (phperwuhan, 2007-10-29)
- 基于Asp.net、SVG技术的WebGIS研究与实现 (phperwuhan, 2007-10-29)
- 如何切换不同svg图层到最前面 (phperwuhan, 2007-10-29)
- svg相关1 (phperwuhan, 2007-10-29)
- svg相关2 (phperwuhan, 2007-10-29)
- oa系统流程节点动作的归纳 (phperwuhan, 2007-10-31)
- windows死机密码 (phperwuhan, 2007-11-02)
导入论坛
收藏
分享给好友
管理
举报
TAG:
技术
技术技巧