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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容