php ZipArchive实现多文件打包下载实例
程序员文章站
2022-10-10 20:18:32
实例代码:
public function download($dataurl,$savename)
{
$datalist = [
root_...
实例代码:
public function download($dataurl,$savename) { $datalist = [ root_path.'/public/introduce/110.docx', root_path.'/public/upfile/110.zip' ]; // print_r($datalist);die; $filename = root_path.'\public\/'.$savename.'.zip'; if(file_exists($filename)){ unlink($filename); } $zip = new \ziparchive(); if ($zip->open($filename,\ziparchive::create)!== true){ exit('无法打开文件,或者文件创建失败'); } foreach ($dataurl as $index => $item) { if (directory_separator=='\\'){ $item = str_replace('/',directory_separator,$item); $filename = str_replace('/',directory_separator,$filename); } // var_dump($item); // var_dump(file_exists($item));die; if (file_exists($item)){ $zip->addfile($item,basename($item)); } } $zip->close(); if(!file_exists($filename)){ exit("无法找到文件"); //即使创建,仍有可能失败 } header('content-type: application/zip'); header('content-disposition: attachment; filename='.basename($filename)); header('content-length: ' . filesize($filename)); @readfile($filename); @unlink ( $filename ); }
注意:里面的路径全部用绝对路径,不然会找不到文件
附赠其他操作:
解压缩zip文件
public function unzip_file($file, $dir){ // 实例化对象 $zip = new ziparchive() ; //打开zip文档,如果打开失败返回提示信息 if ($zip->open($file) !== true) { die ("could not open archive"); } //将压缩文件解压到指定的目录下 $zip->extractto($dir); //关闭zip文档 $zip->close(); }
获取解压文件目录
public function loopfun($dir) { $handle = opendir($dir."."); //定义用于存储文件名的数组 $array_file = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $array_file[] = $dir.'/'.$file; //输出文件名 } } closedir($handle); return $array_file; //print_r($array_file); }
大家可以在本地测试下,感谢大家的学习和对的支持。
上一篇: Java开发笔记(三十三)字符包装类型
下一篇: PHP常见的序列化与反序列化操作实例分析