PHP ブレークポイント再開 - HTTP

WBOY
リリース: 2016-06-21 08:52:34
オリジナル
859 人が閲覧しました

  /**

* PHP-HTTP ブレークポイント送信再開実装

* @param string $path: ファイルのパス

* @param string $file: ファイル名

* @return void

​*/

  関数ダウンロード($path,$file) {

  $real = $path.'/'.$file;

  if(!file_exists($real)) {

  false を返します;

  }

  $size = ファイルサイズ($real);

  $size2 = $size-1;

  $range = 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-Ranges: バイト');

  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));

  flash();

  ob_flush();

  }

  fclose($fp);

  }

  /*PHP の終わり*/



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!