php ZipArchive实现多文件打包下载实例
发布时间:2020-05-25 06:33:15 所属栏目:PHP 来源:互联网
导读:php ZipArchive实现多文件打包下载实例 实例代码: 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/.$
|
实例代码:
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('/',$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);
}
大家可以在本地测试下,感谢大家的学习和对我们的支持。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
