Membuat function download ZIP dengan PHP



Selamat sore agan-agan sekalian saya ingin membagi tutorials mengenai pembuatan function download yang langsung di convert ke ZIP. Pertama dalam pembuatan ini pastikan ZIP telah di install di server PHP supaya script ini berjalan dengan lancar.

Pertama kalian buat sebuah file dengan nama zip.php dan copy paste script berikut:
// membuat function zip
function create_zip($files = array(), $folderpath){
        // mengecek apabila extension zip ada atau tidak
        if(!extension_loaded('zip')){    
            $zip = new ZipArchive();                    //membuat Zip Library
            $zip_name = "download_".time().".zip";            // membuat nama Zip yang akan di dowload
 
            //membuat zip file (ZIPARCHIVE::CREATE)
            $zip->open($zip_name, ZIPARCHIVE::CREATE);
 
            foreach($files as $file){    
                $zip->addFile($folderpath."/".$file);    
            }
            $zip->close();
 
        //mendownload zip jika file sudah di create
        if(file_exists($zip_name)){
            header('Content-type: application/zip');
            header('Content-Disposition: attachment; filename="'.$zip_name.'"');
            readfile($zip_name);
            //delete file setelah download selesai
            unlink($zip_name);
        }        
    }else{
        echo "ZIP extension is not installed in your server!!";
    }
}
Cara menggunakan script diatas sangatlah mudah, diaman inputan yang di terima adalah kumpulan array maka kita harus mebuat seperti berikut:
$files = array('tutorials_sms.doc', 'tutorials_ajax.pdf', 'hp.png', 'gammu_doc.pdf');
create_zip($files, 'exdownload'); 
//dimana exdownload adalah nama dari folder penyimpana file-file yang akan di download
Jika melihat dari contoh diatas maka kita bisa membangun sebuah program download yang lebih kompleks seperti contoh berikut:
<?php
 
// membuat function ZIP
function create_zip($files = array(), $folderpath){
        // mengecek apabila extension zip ada atau tidak
        if(extension_loaded('zip')){    
            $zip = new ZipArchive();            //membuat Zip Library
            $zip_name = "download_".time().".zip";            // membuat nama Zip yang akan di download
 
            //membuat zip file (ZIPARCHIVE::CREATE)
            $zip->open($zip_name, ZIPARCHIVE::CREATE);
 
            foreach($files as $file){    
                $zip->addFile($folderpath."/".$file);    
            }
            $zip->close();
 
        //mendownload zip jika file sudah di create
        if(file_exists($zip_name)){
            header('Content-type: application/zip');
            header('Content-Disposition: attachment; filename="'.$zip_name.'"');
            readfile($zip_name);
            //delete file setelah download selesai
            unlink($zip_name);
        }        
    }else{
        echo "ZIP extension is not installed in your server!!";
    }
}            
 
//usage example of the above create zip function
 
if(isset($_POST['files'])){
    $files = $_POST['files'];
    create_zip($files, 'exdownload');
}else{
    echo "<h3 style='color:red'>Please select atleast one file to download</h3>";
}
 
?>
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <title>"Select All" Checkboxex using jQuery</title>
    <script language="javascript">
$(function(){
 
    // select all / deselect all
    $("#selectall").change(function () {
         $(".mycheckbox").prop('checked', $(this).prop('checked'));
    });
 
    // find if all the checkboxes are checked, if then select the top one too.
    $(".mycheckbox").change(function(){
        if($(".mycheckbox").length == $(".mycheckbox:checked").length)
        $("#selectall").attr("checked", "checked");
            else
        $("#selectall").removeAttr("checked");
    });
});
</script>
</head>
<body>
    <h2>Download Multiple files as ZIP using PHP - mytutorialswebsite.blogspot.com/</h2>
<form action="" method="post">
<table style="border: 1px solid gray;">
<tr style="background:blue; color:white;">
    <th    ><input type="checkbox" id="selectall"/></th>
    <th align="left">Files</th>
</tr>
<tr>
    <td align="center"><input type="checkbox" class="mycheckbox" name="files[]" value="tutorials_sms.docx"/></td>
    <td>Tutorials SMS Gateway</td>
</tr>
<tr>
    <td align="center"><input type="checkbox" class="mycheckbox" name="files[]" value="tutorials_ajax.pdf"/></td>
    <td>Tutorials Ajax</td>
</tr>
<tr>
    <td align="center"><input type="checkbox" class="mycheckbox" name="files[]" value="hp.png"/></td>
    <td>Picture HP</td>
</tr>
<tr>
    <td align="center"><input type="checkbox" class="mycheckbox" name="files[]" value="gammu_doc.pdf"/></td>
    <td>Gammu Tutorials</td>
</tr>
<tr>
    <td align="center"><input type="checkbox" class="mycheckbox" name="files[]" value="jqeury.doc"/></td>
    <td>Tutorials Jquery</td>
</tr>
<tr>
    <td colspan="2" align="right"><input type="submit" value="Download" /></td>
</tr>
</table>
</form>
</body>
</html>
Untuk tampilan setelah dijalankan script diatas sebagai berikut:

Demikian dulu yah tutorialsnya semoga bisa membantu kalian jika mengalami masalah belajar PHP. Salam Hangat.
Depri Pramana

Silakan Berikan Komentar anda yang bisa mendukung blog ini, komentar anda saya harapkan, terima kasih
EmoticonEmoticon