ホームページ >バックエンド開発 >PHPチュートリアル >PHPコード:Httpブレークポイントの実装例resume_PHPチュートリアル

PHPコード:Httpブレークポイントの実装例resume_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:57:57801ブラウズ

PHP代码:HTTP切断点续传的实现の例

クリップボードにコピーLiehuo.Net Codes引用内容:[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 の終わり*/

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/363905.html技術記事 PHP代コード:Http切断点续传的实现の例 クリップボードにコピー 引用内容: [www.veryhuo.com] ?php /** * PHP-HTTP切断点续传实现 * @param string $path: 文件位置経路 * ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。