public function zipDown() | |
{ | |
$path="./upload/img";//要压缩的文件的绝对路径 | |
$filename='ceshi'; //生成压缩文件名 | |
$this->create_zip($path,$filename); | |
if(!file_exists('./' . $filename . '.zip')){ | |
echo 1;die; | |
} | |
header("Cache-Control: public"); | |
header("Content-Description: File Transfer"); | |
header('Content-disposition: attachment; filename=' . basename($filename . '.zip')); //文件名 | |
header("Content-Type: application/zip"); //zip格式的 | |
header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件 | |
header('Content-Length: ' . filesize('./' . $filename. '.zip')); //告诉浏览器,文件大小 | |
@readfile('./' . $filename . '.zip');//下载到本地 | |
@unlink('./' . $filename . '.zip');//删除服务器上生成的这个压缩文件 | |
} | |
function create_zip($path,$filename){ | |
$zip = new \ZipArchive(); | |
if($zip->open($filename.'.zip', \ZipArchive::CREATE |\ZipArchive::OVERWRITE)) { | |
$this->addFileToZip($path, $zip);//调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 | |
$zip->close();//关闭处理的zip文件 | |
} | |
} | |
function addFileToZip($path,$zip){ | |
$handler=opendir($path); //打开当前文件夹由$path指定。 | |
while(($filename=readdir($handler))!==false){ | |
if($filename != "." && $filename != ".."){ | |
//文件夹文件名字为'.'和‘..’,不要对他们进行操作 | |
if(is_dir($path."/".$filename)){ | |
$this->addFileToZip($path."/".$filename, $zip); | |
}else{ | |
$zip->addFile($path."/".$filename); | |
} | |
} | |
} | |
@closedir($path); | |
} |
php压缩文件夹并下载
PHP技术
404
0
0
2022-12-10
登录后可点赞和收藏
登录后可点赞和收藏