php zip压缩文件和下载

 function downzip($dataList,$zipname=''){

     if(!$zipname){
        $zipname = date('YmdHis',time());
     }
     $zip=new ZipArchive();
     $fileName = $zipname.'.zip';
     if (!file_exists($fileName)){
         $zip->open($fileName,ZipArchive::OVERWRITE);//创建一个空的zip文件
         for ($i=0;$i<count($dataList);$i++){
             $zip->addFile($dataList[$i],basename($dataList[$i]));
         }
         $zip->close();
      }
    
     $file = fopen($fileName,"r");
     //返回的文件类型
     Header("Content-type: application/octet-stream");
     //按照字节大小返回
     Header("Accept-Ranges: bytes");
     //返回文件的大小
     Header("Accept-Length: ".filesize($fileName));
     //这里对客户端的弹出对话框,对应的文件名
     Header("Content-Disposition: attachment; filename=".$fileName);
     //修改之前,一次性将数据传输给客户端
     //向客户端回送数据
     $buffer=1024;//
     //判断文件是否读完
     while (!feof($file)) {
         //将文件读入内存
         $file_data=fread($file,$buffer);
         //每次向客户端回送1024个字节的数据
         echo $file_data;
     }
     fclose($file);
 }
 $dataList = array('images/Chrysanthemum.jpg','images/Desert.jpg');
 downzip($dataList);

你可能感兴趣的:(php zip压缩文件和下载)