PHP代码:HTTP切断点续传的实现の例
クリップボードにコピー引用内容:
[www.bkjia.com]
/**
* PHP-HTTP ブレークポイント再開転送の実装
* @param string $path: ファイルへのパス
* @param string $file: ファイル名
* @return void
*/
function download($path,$file) {
$real = $path.'/'.$file;
if(!file_exists($real)) {
return false;
}
$size = ファイルサイズ($real);
$size2 = $size-1;
$範囲 = 0;
if(isset($_SERVER['HTTP_RANGE'])) {
header('HTTP /1.1 206 部分的なコンテンツ');
$range = str_replace('=','-',$_SERVER['HTTP_RANGE']);
$range =explode('-',$range);
$range = トリム($range[1]);
header('Content-Length:'.$size);
header('Content-Range: バイト '.$range.'-'.$size2.'/'.$size);
} else {
header('Content-Length:'.$size);
header('Content-Range: バイト 0-'.$size2.'/'.$size);
}
header('Accenpt-Range: バイト');
header('application/octet-stream');
header("キャッシュ制御: public");
header("プラグマ: public");
//解决在IE中ダウンロード時中文乱码问题
$ua = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/MSIE/',$ua)) {
$ie_filename = str_replace('+','%20',urlencode($file));
header('Content-Dispositon:attachment; filename='.$ie_filename);
} else {
header('Content-Dispositon:attachment; filename='.$file);
}
$fp = fopen($real,'rb+');
fseek($fp,$range);
while(!feof($fp)) {
set_time_limit(0);
print(fread($fp,1024));
flush();
ob_flush();
}
fclose($fp);
}
/*PHP の終わり*/
http://www.bkjia.com/PHPjc/363905.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/363905.html技術記事 PHP代コード:Http切断点续传的实现の例 クリップボードにコピー 引用内容: [www.veryhuo.com] ?php /** * PHP-HTTP切断点续传实现 * @param string $path: 文件位置経路 * ...