找回密码
 注册

[PHP] 函数实现PHP文件下载并隐藏真实文件地址

php 发表于 2013/12/13 12:10 | 显示全部楼层 |阅读模式
<?php
        /* PHP文件下载函数,隐藏文件真实链接地址,直接通过http headers将文件内容发送到浏览器转存到访问电脑
         * 吴先成 2013-12-13 11:57:49 GMT+8 www.51-n.com
         * @param $dir 文件存放目录
         * @param $filename 文件名
         * @param $isU8 页面是否是utf-8编码,默认为true,为真时将utf-8转为gbk,以避免文件系统函数出错
                关于统一编码的更多细节请访问 http://www.51-n.com/t-4006-1-1.html
                获取最新版 PHP 5.5.7 请访问 http://www.51-n.com/t-4099-1-1.html
        */
        function download($dir,$filename,$isU8=true){
                $fullPath = $dir.'/'.$filename;
                if($isU8) $fullPath = @iconv('utf-8','gbk//ignore',$fullPath);
                if(!is_file($fullPath)) return false;
                if(!$f = @fopen($fullPath,'r')) return false;
                $fstat = fstat($f);
                ob_clean();
                header('Content-Type:application/octet-stream');
                header('Content-Disposition:attachment;filename='.$filename);
                Header('Accept-Ranges:bytes');
                Header('Accept-Length:'.$fstat['size']); //附件尺寸
                header('Content-Transfer-Encoding:binary');
                header('Connection:close');
                while(!feof($f)){
                        echo fread($f, 10240);
                }
                fclose($f);
        }
        //使用实例
        download('c:/windows/system32/','cmd.exe');
?>

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表