断点继传
时间:2007-10-27
来源:互联网
PHP代码:
/** @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);
}
作者: 逆雪寒 发布时间: 2007-10-26
:)
作者: luzhou 发布时间: 2007-10-27
[ 本帖最后由 逆雪寒 于 2007-10-29 09:52 编辑 ]
作者: 逆雪寒 发布时间: 2007-10-28
作者: netboys 发布时间: 2007-11-01
作者: netboys 发布时间: 2007-11-01
作者: forest 发布时间: 2007-11-01
作者: jgcao83 发布时间: 2007-11-02
作者: yuanjing_119 发布时间: 2007-11-02
http://www.yemaol.com/blog/?p=46
有用的上的朋友可以看看
作者: yema 发布时间: 2007-11-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28