ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルダウンロードクラスコード、PHPファイルダウンロード処理クラス

PHPファイルダウンロードクラスコード、PHPファイルダウンロード処理クラス

WBOY
WBOYオリジナル
2016-07-25 08:51:271184ブラウズ
  1. /*

  2. * 関数: ファイルのダウンロード
  3. */
  4. /**
  5. * 使用法: $download = new Download();
  6. * //パラメータを設定します
  7. * $download->set_file_dir("c:/");
  8. * $download->set_file_name("boot.ini") ;
  9. * $download->set_read_bytes(1024);
  10. * //ファイルのダウンロード処理操作
  11. * $download->deal_with();
  12. * //ファイルが存在するかどうかを判定します
  13. * if($download->is_file_exist ()){
  14. *echo "file_exist";
  15. *}else{
  16. *echo "file_not_exist";
  17. *}
  18. */
  19. class Download {
  20. private $file = null;//ファイルハンドル
  21. private $file_dir = "";//ファイルが存在するディレクトリ
  22. private $file_name = "";//ファイル名
  23. private $file_exist = false;//ファイルが存在するかどうかを示します。デフォルトは
  24. privateではありません$read_bytes = 0;//ファイルから読み取ったバイト数
  25. private $mode = "r";//ファイルのアクセスタイプ

  26. public function __construct(){

  27. }
  28. < ;p>public function __destruct(){
  29. if(null != $this->file){
  30. fclose($this->file);
  31. }
  32. }

  33. < p>/* *
  34. * ファイルのダウンロード処理操作
  35. */ bbs.it-home.org
  36. public function deal_with(){
  37. //完全なファイルパス
  38. $file_path = $this->file_dir .< /p>
  39. //ファイルが存在するか確認します

  40. if (file_exists($file_path)) {
  41. $this->file_exist = true;

  42. //ファイルを開きます

  43. $this-> file = fopen($file_path, $this->mode);

  44. // 入力ファイルタグ

  45. Header("Content-type: application/octet-stream") );
  46. Header(" Accept-Range: バイト");
  47. Header("Accept-Length: " . filesize($file_path));
  48. Header("Content-Disposition:attachment; filename=" . $this-> file_name);
  49. //ファイルの内容を出力します

  50. while(!feof($this->file))
  51. {
  52. $out = fread($this->file, $this- >read_bytes);
  53. if(!get_magic_quotes_gpc())
  54. {
  55. echo $out;
  56. }
  57. else
  58. {
  59. echotripslashes($out);
  60. }
  61. }
  62. //echo fread($file, filesize($ file_dir . $file_name)) ;
  63. }
  64. }

  65. /**

  66. * 戻り値は true または false で、その値はファイルが存在するかどうかを判断するために使用されます
  67. */
  68. public function is_file_exist(){
  69. return $this->file_exist;
  70. }
  71. * パラメータの型は文字列です
  72. */
  73. public function set_file_dir($file_dir=""){
  74. $this->file_dir = $file_dir;
  75. }

  76. /**

  77. * パラメータの型は文字列です
  78. */
  79. public function set_file_name($file_name=""){
  80. $this->file_name = $file_name;
  81. }

  82. /**

  83. * パラメータの型は整数です
  84. * /
  85. public function set_read_bytes( $read_bytes=1024){
  86. $this->read_bytes = $read_bytes;
  87. }
  88. }
  89. ?>

コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。