php文件下载类代码,php文件下载处理类
时间:2021-07-01 10:21:17
帮助过:11人阅读
/* - * 功 能: 文件下载
- */
- /**
- * 使用方法:$download = new Download();
- * //设置参数
- * $download->set_file_dir("c:/");
- * $download->set_file_name("boot.ini");
- * $download->set_read_bytes(1024);
- * //文件下载处理操作
- * $download->deal_with();
- * //判断文件是否存在
- * if($download->is_file_exist()){
- *echo "file_exist";
- *}else{
- *echo "file_not_exist";
- *}
- */
- class Download {
- private $file = null;//文件句柄
- private $file_dir = "";//文件所在的目录
- private $file_name = "";//文件名称
- private $file_exist = false;//表示文件是否存在, 缺省为不存在
- private $read_bytes = 0;//文件读取字节数
- private $mode = "r";//文件的访问类型
public function __construct(){ - }
public function __destruct(){ - if(null != $this->file){
- fclose($this->file);
- }
- }
/** - * 文件下载处理的操作
- */ bbs.it-home.org
- public function deal_with(){
- //文件全路径
- $file_path = $this->file_dir . $this->file_name;
//检查文件是否存在 - if (file_exists($file_path)) {
- $this->file_exist = true;
// 打开文件 - $this->file = fopen($file_path, $this->mode);
// 输入文件标签 - Header("Content-type: application/octet-stream");
- Header("Accept-Ranges: bytes");
- Header("Accept-Length: " . filesize($file_path));
- Header("Content-Disposition: attachment; filename=" . $this->file_name);
// 输出文件内容 - while(!feof($this->file))
- {
- $out = fread($this->file, $this->read_bytes);
- if(!get_magic_quotes_gpc())
- {
- echo $out;
- }
- else
- {
- echo stripslashes($out);
- }
- }
- //echo fread($file, filesize($file_dir . $file_name));
- }
- }
/** - * 返回值为 true 或 false, 通过其值判断文件是否存在
- */
- public function is_file_exist(){
- return $this->file_exist;
- }
/** - * 参数类型为字符串
- */
- public function set_file_dir($file_dir=""){
- $this->file_dir = $file_dir;
- }
/** - * 参数类型为字符串
- */
- public function set_file_name($file_name=""){
- $this->file_name = $file_name;
- }
/** - * 参数类型为整型
- */
- public function set_read_bytes($read_bytes=1024){
- $this->read_bytes = $read_bytes;
- }
- }
- ?>
|