- Important: If you work on Linux system, PHP must have CHMOD write permisions in the directory in which the ZIP file /archive will be created.
<?php // function to create ZIP archive. Returns TRUE on success, otherwise, False // receives 2 arguments: an array with the path-name of the files to add in archive, // and the path-name of the Zip file that will be created function createZip($files, $zip_file) { // PHP-MySQL Course - http://coursesweb.net/php-mysql/ // create an object of the ZipArchive class $zip = new ZipArchive; // if the $zip_file can be created, traverse the array $files and add each file in archive if($zip->open($zip_file, ZipArchive::CREATE) === TRUE) { foreach($files as $file){ $zip->addFile($file); } $zip->close(); return true; } else return false; } /* Example */ // Array with the path-name of the files to be added in ZIP archive $files = array('file1.txt', 'image.jpg', 'audio.mp3'); // the path-name of your final zip file on your server $zip_file = 'final.zip'; // calls the createZip() to create the ZIP archive, returns message of success or failure if(createZip($files, $zip_file)) echo 'The '. $zip_file. ' successfully created'; else echo 'Unable to create the '. $zip_file. ' file'; ?>If the $zip_file already exists on server, the files will be added in the in that archive, keeping also the existing files in ZIP.
- To overwrite the ZIP archive, replace CREATE with OVERWRITE .
• If you want the ZIP archive to be downloaded after it was created, use this code:
// here the code that adds the files in ZIP archive
header('Content-type: application/zip');
header('Content-disposition: filename="'. $zip_file. '"');
header('Content-length:'. filesize($zip_file));
readfile($zip_file);
exit();
header('Content-type: application/zip');
header('Content-disposition: filename="'. $zip_file. '"');
header('Content-length:'. filesize($zip_file));
readfile($zip_file);
exit();
?>
0 comments:
Post a Comment