一个很简单的下载类

浏览:1110 发布日期:2013/11/04 分类:技术分享 关键字: 下载 类 php 代码
<?php

class DownAction extends Action {

    //file:真实文件名(如:201308270255.txt)  name:用户指定的下载文件的名称
    public function down() {
        if (empty($_GET['file'])){
            $this->error("访问方式非法!");
            exit;
        }

        $tmp = explode('.', $_GET['file']);
        $tmp[0] = strtr($tmp[0], '_', '0');
        if (!($tmp[0])){

            $this->error("终止下载!");
            exit;
        }

        $name = empty($_GET['name']) ? $_GET['file'] : $_GET['name'];

        $name = urldecode(urldecode($name));

        $fileurl = $_SERVER['DOCUMENT_ROOT'] . '/hsjcms/Public/picture/' . substr($_GET['file'], 0, 8) ;


        if (!file_exists($fileurl)) {   //检查文件是否存在
            $this->error("文件不存在");
            exit;
        } else {
            $file = fopen($fileurl, "r"); // 打开文件
// 输入文件标签
            Header("Content-type: application/octet-stream");
            Header("Accept-Ranges: bytes");
            Header("Accept-Length: " . filesize($fileurl));
            Header("Content-Disposition: attachment; filename=" . $name);
// 输出文件内容
            echo fread($file, filesize($fileurl));
            fclose($file);
            /*
             *
            //更新数据库
            $m = M('adddocs');
            $strUrl = C('UPLOAD') . '/file/' . substr($_GET['file'], 0, 8) . '/' . $_GET['file'];
            $rs = $m->where('docs="' . $strUrl . '"')->find();
            $rs['nums']++;
            $m->save($rs);

             */
            exit();
        }
    }

}
最佳答案
评论() 相关
后面还有条评论,点击查看>>