PHP 用 ZipArchive 打包指定文件到zip供用户下载

系统 2028 0
Ubuntu需安装zlib
        
          sudo
        
         apt-get 
        
          install
        
        
           ruby


        
        
          sudo
        
         apt-get 
        
          install
        
         zlib1g zlib1g.dev
      
 
Windows需开启php_zip.dll
如果在 "...\php\ext\" 没有这个文件,可以到网上下载一个
然后修改 "...\php\php.ini" ,找到 "extension=php_zip.dll"  去掉  ";",如果没有这行就加上。
 
        
          $filename
        
         = "xxxx.zip"
        
          ; 


        
        
          ob_end_clean
        
        
          (); 


        
        
          $zip
        
         = 
        
          new
        
        
           ZipArchive();


        
        
          $zip
        
        ->open(
        
          $filename
        
        , ZipArchive::
        
          OVERWRITE);  


        
        
          while
        
        
           (xxxx)  

{ 

    
        
        
          if
        
        (
        
          strlen
        
        (
        
          $row
        
        ->team_upload) != 0
        
          ) 

    { 

        
        
        
          $sitelen
        
         = 
        
          strlen
        
        (
        
          $row
        
        ->
        
          team_upload); 

        
        
        
          $attachfile
        
         = xxxx
        
          //
        
        
          写绝对径,建议用PHP环境变量 
        
        
          $attachfile
        
        =
        
          iconv
        
        ("UTF-8","GBK",
        
          $attachfile
        
        ); 
        
          //
        
        
          转码,打包中文文档
        
        
          $zip
        
        ->addFile( 
        
          $attachfile
        
         , 
        
          basename
        
        (
        
          $attachfile
        
        )); 
        
          //
        
        
          把文件放入zip 
        
        
              } 

} 


        
        
          $zip
        
        ->close();
        
          //
        
        
          关闭  
        
        
          header
        
        ('Content-Description: File Transfer'
        
          );    


        
        
          Header
        
        ("content-type:application/x-zip-compressed"
        
          );  


        
        
          header
        
        ('Content-Disposition: attachment; filename='.
        
          basename
        
        (
        
          $filename
        
        
          ));     


        
        
          header
        
        ('Content-Transfer-Encoding: binary'
        
          );     


        
        
          header
        
        ('Expires: 0'
        
          );     


        
        
          header
        
        ('Cache-Control: must-revalidate, post-check=0, pre-check=0'
        
          );     


        
        
          header
        
        ('Pragma: public'
        
          );     


        
        
          header
        
        ('Content-Length: ' . 
        
          filesize
        
        (
        
          $filename
        
        
          ));     


        
        
          ob_clean
        
        ();   
        
          //
        
        
          清空但不关闭输出缓存 
        
        
          flush
        
        
          ();     

@
        
        
          readfile
        
        (
        
          $filename
        
        
          );   

@
        
        
          unlink
        
        (
        
          $filename
        
        );
        
          //
        
        
          删除打包的临时zip文件。文件会在用户下载完成后被删除 
        
      

 

 

PHP 用 ZipArchive 打包指定文件到zip供用户下载


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论