In this article, we are going to tell you how to create zip file and download using ZipArchive with example in PHP.
Here, we create a Zip file using the ZipArchive class in this example. sometimes, we need to compress a zip file for send emails like multiple invoices. so we can easily create zip file and download using the below example.
so you can follow the below example for create a zip file example using ziparchive php class.
index.php
<!DOCTYPE html>
<html lang="en">
<head>
<title>Create Zip File And Download Using ZipArchive In Php - XpertPhp</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm-12">
<h3>Create Zip File And Download Using ZipArchive</h3>
<a href="download.php" class="btn btn-info" >Download ZIP</a>
</div>
</div>
</div>
</body>
</html>
download.php
<?php
function createZipArchive($files = array(), $destination = '', $overwrite = false) {
if(file_exists($destination) && !$overwrite) { return false; }
$validFiles = array();
if(is_array($files)) {
foreach($files as $file) {
if(file_exists($file)) {
$validFiles[] = $file;
}
}
}
if(count($validFiles)) {
$zip = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) == true) {
foreach($validFiles as $file) {
$zip->addFile($file,$file);
}
$zip->close();
return file_exists($destination);
}else{
return false;
}
}else{
return false;
}
}
$fileName = 'invoicezipfile.zip';
$files = array('uploads/Invoice1.pdf', 'uploads/Invoice2.pdf');
$result = createZipArchive($files, $fileName);
header("Content-Disposition: attachment; filename=\"".$fileName."\"");
header("Content-Length: ".filesize($fileName));
readfile($fileName);
?>
We think would you like this article, so you can click on “Show Demo” button and you can see this demo article.