美文网首页
php::使用ZipArchive扩展压缩文件并下载demo

php::使用ZipArchive扩展压缩文件并下载demo

作者: kyousukesan | 来源:发表于2017-08-01 18:31 被阅读0次

    php版本>=5.2 ,zip扩展版本>=1.1.0

    //$zip_file 压缩包路径,$files 需要加入压缩包的文件路径
    function file_download($zip_file,$files)
    {
      //创建压缩包
      $zip = new ZipArchive;
      if($zip->open($_SERVER['DOCUMENT_ROOT'].$zip_file, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE )===true){   
        foreach($files as $val){ 
            if(file_exists($_SERVER['DOCUMENT_ROOT'].$val)){
                //将文件加入到压缩包
                $zip->addFile($_SERVER['DOCUMENT_ROOT'].$val,array_pop(explode("/",$val)));
            }
        }
        $zip->close();
        //开始下载
        $file_name = $_SERVER['DOCUMENT_ROOT'] . $zip_file; //需要下载的文件
        header ( "Cache-Control: max-age=0" );
        header ( "Content-Description: File Transfer" );
        header ( 'Content-disposition: attachment; filename=' . basename ( $file_name ) ); // 文件名
        header ( "Content-Type: application/zip" ); // zip格式的
        header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,这是二进制文件
        header ( 'Content-Length: ' . filesize ( $file_name ) ); // 告诉浏览器,文件大小
        @readfile ( $file_name );//输出文件;
       }else{
        return false;
       } 
    }
    

    说明文档:http://be2.php.net/manual/zh/class.ziparchive.php

    相关文章

      网友评论

          本文标题:php::使用ZipArchive扩展压缩文件并下载demo

          本文链接:https://www.haomeiwen.com/subject/uofslxtx.html