Skip to content

How to Create ZIP File with PHP ?

  • by
Creating ZIP File with PHP

This post helps you to create ZIP file using PHP, few lines of script that system converts the selected files into ZIP file format. It is useful for ecommerce web projects like selling PDFs, Images and Docs ect, use can choose files and download it into compressed format. Take a look at this live demo.

Create ZIP File
Creating ZIP File with PHP

Jquery Duplicate Fields Form Submit with PHP

How to Create ZIP File with PHP ?

Form contains list of files with input type checkbox name files[].

<form name="zips" method="post">
  <input type="checkbox" name="files[]" value="honeymoon-packages-pic.jpg" />
  <input type="checkbox" name="files[]" value="inclusive-pic.jpg" />
  <img src="files/image.png" title="Image" width="16" height="16" /> inclusive-pic.jpg
  <input type="checkbox" name="files[]" value="luxury-pic.jpg" />
  <img src="files/image.png" title="Image" width="16" height="16" /> luxury-pic.jpg
  <input type="checkbox" name="files[]" value="quick.docx" />
  <img src="files/doc.png" title="Document" width="16" height="16" /> quick.docx
  <input type="checkbox" name="files[]" value="quick.pdf" />
  <img src="files/pdf.png" title="pdf" width="16" height="16" /> quick.pdf
  <input type="submit" name="createpdf" class="btnsubmit" value="Download as ZIP" />

  <input type="reset" name="reset" class="btnreset" value="Reset" />

CSS Code
Contains CSS code.

.btnsubmit { border:0px; background-color:#000080; color:#FFF; padding:10px; cursor:pointer; font-weight:bold; border-radius:5px;}
.btnreset { border:0px; background-color:#CCCCCC; color:#000; font-weight:bold; padding:10px; cursor:pointer; border-radius:5px; }

PHP Code
Contains PHP code covert the selected files into ZIP file format.

  $error = "";		//error holder
    $post = $_POST;		
    $file_folder = "files/";	// folder to load files
    if(extension_loaded('zip')){	// Checking ZIP extension is available
      if(isset($post['files']) and count($post['files']) > 0){	// Checking files are selected
        $zip = new ZipArchive();			// Load zip library	
        $zip_name = time().".zip";			// Zip name
        if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){		// Opening zip file to load files
          $error .=  "* Sorry ZIP creation failed at this time<br/>";
        foreach($post['files'] as $file){				
          $zip->addFile($file_folder.$file);			// Adding files into zip
          // push to download the zip
          header('Content-type: application/zip');
          header('Content-Disposition: attachment; filename="'.$zip_name.'"');
          // remove zip file is exists in temp path
        $error .= "* Please select file to zip <br/>";
      $error .= "* You dont have ZIP extension<br/>";

If you enjoyed this tutorial and learned something from it, please consider sharing it with our friends and followers! Also like to my facebook page to get more awesome tutorial each week!

Leave a Reply

Your email address will not be published. Required fields are marked *