hahacc 发表于 2009-4-11 10:37:14

分享我的下载类

1.首先,将Down.php放到system/application/libraries文件夹,这个不用多说。
2.加载之后,在要用到的Controller中:
function downme($file_name){//下载文件
            $file_name = $file_name.".rar";
            $base=base_url();
            $file_dir =$base.'download/';
            $realpath=$file_dir.$file_name;
            $this->down->downme($realpath,'http');
      }
附注:希望大家完善这个类,实现更多的功能。谢谢。
Down.php

<?php
    class Down {   
      function downme($filepathh,$type='relative') {//$filepathh传入完整路径,如./download/a.rar
            
            if($type=='relative'){//如果是相对路径的下载
//                ob_start();
                if(!file_exists($filepathh)){//如果没有此文件
                  echo "文件找不到";
                }
                else{//如果存在文件
                  $file=fopen($filepathh,"r");
                  Header("Content-type: application/octet-stream");
                  Header("Accept-Ranges: bytes");
                  Header("Accept-Length: ".filesize($filepathh));
                  Header("Content-Disposition: attachment; filename=" . $file_name);
                  // 输出文件内容
                  echo fread($file,filesize($file_dir . $file_name));
                  fclose($file);
                  exit;
                }
//                ob_end_clean();
            }
            else{
                if($type=='http'){//如果是http,ftp形式的下载,CI中适用,因为要用到base_url()
//                  ob_start();
                  $file=fopen($filepathh,"r");
                  if(!$file){//如果文件找不到
                        echo "文件找不到";
                  }
                  else{//如果存在此文件
                        $file_name=basename($filepathh);
                        Header("Content-type: application/octet-stream");
                        Header("Content-Disposition: attachment; filename=" . $file_name);
                        while (!feof ($file)) {
                            echo fread($file,50000);
                        }
                        fclose ($file);
                  }
                  
                }
//                ob_end_clean();
            }
            
      }
      
    }
?>

Hex 发表于 2009-4-11 12:19:03

好东西,加分~

hahacc 发表于 2009-4-12 12:07:32

非常感谢老大,first time!

008shanke 发表于 2011-3-29 10:23:02

确实是好东西
页: [1]
查看完整版本: 分享我的下载类