喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: 求PHP文件下载类一个  
 
gengle53022
新手上路
Rank: 1



UID 72248
精华 0
积分 19
帖子 10
金钱 19 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-4-24
状态 离线
求PHP文件下载类一个

最近在网上找下载类,百度上翻来翻去就那么一个
谁有好一点的下载类分享一下,最好能支持多多的文件格式,并且能下载大容量的文件,百M级别的
2007-6-8 04:15 PM#1
查看资料  发短消息  顶部
 
zhujy2002
新手上路
Rank: 1



UID 84688
精华 0
积分 27
帖子 13
金钱 27 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-12-12
状态 离线
[推荐阅读] 关于引用的问题.
提供一个



<?php
class filedown
{
    var 
$mdownstart;
    var 
$mfilesize;
    var 
$mfilehandle;
    var 
$mfilepath;
    var 
$mfilename;
    var 
$mfileext;

    function 
filedown()
    {
    }

    
//public
    
function down($pfilepath$pfilename '')
    {
        
$this->mfilepath $pfilepath;
        if(!
$this->ini_file()) $this->send_error();
        
$this->mfilename = empty($pfilename) ? $this->get_filename() : $pfilename;
        
$this->set_start();
        
$this->set_header();
        
$this->send();
    }

    function 
ini_file()
    {
        if(!
is_file($this->mfilepath)) return FALSE;
        
$this->mfilehandle fopen($this->mfilepath'rb');
        
$this->mfilesize filesize($this->mfilepath);
        
$this->mfileext fileext($this->mfilepath);
        return 
TRUE;
    }

    function 
set_start()
    {
        if(!empty(
$_server['http_range']) && preg_match("/^bytes=([d]?)-([d]?)$/i"$_server['http_range'], $match))
        {
            if(empty(
$match[1])) $this->mdownstart $match[1];
            
fseek($this->mfilehandle$this->mdownstart);
        }
        else
        {
            
$this->mdownstart 0;
        }
    }

    function 
set_header()
    {
        @
header("cache-control: public");
        @
header("pragma: public");
        
header("content-length: " . ($this->mfilesize $this->mdownstart));
        if (
$this->mdownstart 0)
        {
            @
header("http/1.1 206 partial content");
            
header("content-ranges: bytes" $this->mdownstart "-" . ($this->mfilesize 1) . "/" $this->mfilesize);
        }
        else
        {
            
header("accept-ranges: bytes");
        }
        
header("content-disposition: attachment; filename=" .$this->mfilename);
        
header("content-type:".$this->get_filetype());
    }

    function 
get_filename()
    {
        return 
basename($this->mfilepath);
    }

    function 
get_filetype()
    {
        
$filetype['chm']='application/octet-stream'
        
$filetype['ppt']='application/vnd.ms-powerpoint'
        
$filetype['xls']='application/vnd.ms-excel'
        
$filetype['doc']='application/msword'
        
$filetype['exe']='application/octet-stream'
        
$filetype['rar']='application/octet-stream'
        
$filetype['js']="javascript/js"
        
$filetype['css']="text/css"
        
$filetype['hqx']="application/mac-binhex40"
        
$filetype['bin']="application/octet-stream"
        
$filetype['oda']="application/oda"
        
$filetype['pdf']="application/pdf"
        
$filetype['ai']="application/postsrcipt"
        
$filetype['eps']="application/postsrcipt"
        
$filetype['es']="application/postsrcipt"
        
$filetype['rtf']="application/rtf"
        
$filetype['mif']="application/x-mif"
        
$filetype['csh']="application/x-csh"
        
$filetype['dvi']="application/x-dvi"
        
$filetype['hdf']="application/x-hdf"
        
$filetype['nc']="application/x-netcdf"
        
$filetype['cdf']="application/x-netcdf"
        
$filetype['latex']="application/x-latex"
        
$filetype['ts']="application/x-troll-ts"
        
$filetype['src']="application/x-wais-source"
        
$filetype['zip']="application/zip"
        
$filetype['bcpio']="application/x-bcpio"
        
$filetype['cpio']="application/x-cpio"
        
$filetype['gtar']="application/x-gtar"
        
$filetype['shar']="application/x-shar"
        
$filetype['sv4cpio']="application/x-sv4cpio"
        
$filetype['sv4crc']="application/x-sv4crc"
        
$filetype['tar']="application/x-tar"
        
$filetype['ustar']="application/x-ustar"
        
$filetype['man']="application/x-troff-man"
        
$filetype['sh']="application/x-sh"
        
$filetype['tcl']="application/x-tcl"
        
$filetype['tex']="application/x-tex"
        
$filetype['texi']="application/x-texinfo"
        
$filetype['texinfo']="application/x-texinfo"
        
$filetype['t']="application/x-troff"
        
$filetype['tr']="application/x-troff"
        
$filetype['roff']="application/x-troff"
        
$filetype['shar']="application/x-shar"
        
$filetype['me']="application/x-troll-me"
        
$filetype['ts']="application/x-troll-ts"
        
$filetype['gif']="image/gif"
        
$filetype['jpeg']="image/pjpeg"
        
$filetype['jpg']="image/pjpeg"
        
$filetype['jpe']="image/pjpeg"
        
$filetype['ras']="image/x-cmu-raster"
        
$filetype['pbm']="image/x-portable-bitmap"
        
$filetype['ppm']="image/x-portable-pixmap"
        
$filetype['xbm']="image/x-xbitmap"
        
$filetype['xwd']="image/x-xwindowdump"
        
$filetype['ief']="image/ief"
        
$filetype['tif']="image/tiff"
        
$filetype['tiff']="image/tiff"
        
$filetype['pnm']="image/x-portable-anymap"
        
$filetype['pgm']="image/x-portable-graymap"
        
$filetype['rgb']="image/x-rgb"
        
$filetype['xpm']="image/x-xpixmap"
        
$filetype['txt']="text/plain"
        
$filetype['c']="text/plain"
        
$filetype['cc']="text/plain"
        
$filetype['h']="text/plain"
        
$filetype['html']="text/html"
        
$filetype['htm']="text/html"
        
$filetype['htl']="text/html"
        
$filetype['rtx']="text/richtext"
        
$filetype['etx']="text/x-setext"
        
$filetype['tsv']="text/tab-separated-values"
        
$filetype['mpeg']="video/mpeg"
        
$filetype['mpg']="video/mpeg"
        
$filetype['mpe']="video/mpeg"
        
$filetype['avi']="video/x-msvideo"
        
$filetype['qt']="video/quicktime"
        
$filetype['mov']="video/quicktime"
        
$filetype['moov']="video/quicktime"
        
$filetype['movie']="video/x-sgi-movie"
        
$filetype['au']="audio/basic"
        
$filetype['snd']="audio/basic"
        
$filetype['wav']="audio/x-wav"
        
$filetype['aif']="audio/x-aiff"
        
$filetype['aiff']="audio/x-aiff"
        
$filetype['aifc']="audio/x-aiff"
        
$filetype['swf']="application/x-shockwave-flash";
        return 
array_key_exists($this->mfileext$filetype) ? $filetype[$this->mfileext] : $this->mfileext;
    }

    function 
send()
    {
        
fpassthru($this->mfilehandle);
    }

    
//public 
    
function send_error()
    {
        @
header("http/1.0 404 not found");
        @
header("status: 404 not found");
        exit();
    }
}
?>
2007-9-13 11:34 AM#2
查看资料  Blog  发短消息  顶部
 
zhujy2002
新手上路
Rank: 1



UID 84688
精华 0
积分 27
帖子 13
金钱 27 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-12-12
状态 离线
[推荐阅读] 某大型网络广告公司招聘 PHP 程序员(北京)
还有一个更简单的函数

function file_down($file, $filename = '')
{
        global $PHP_TIME;
        if(!file_exists($file)) showmessage("The file $file is not exists !");
        $filename = $filename ? $filename : basename($file);
        $filetype = fileext($filename);
        $filesize = filesize($file);
    ob_end_clean();
        @set_time_limit(900);
        header('Cache-control: max-age=31536000');
        header('Expires: '.gmdate('D, d M Y H:i:s', $PHP_TIME + 31536000).' GMT');
        header('Content-Encoding: none');
        header('Content-Length: '.$filesize);
        header('Content-Disposition: attachment; filename='.$filename);
        header('Content-Type: '.$filetype);
        readfile($file);
        exit;
}
2007-9-13 11:35 AM#3
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.048200 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP