pernahkah anda mendownload banyak file dari internet dalam sekali download? User cukup mencentang file file yang akan didownloadnya dan ketika di klik download, maka secara otomatis file file yang tercentang tadi di kompres dalam satu file zip dan jendela download keluar? Yup, kira kira seperti itulah yang akan kita buat.
sekenario
kita mempunyai 4 buah gambar. user bisa mendownload gambar yang dia suka. Caranya cukup centang gambar yang akan didownload . file secara automagic akan terzip dan terdownload. bagaimana sih caranya membuat magic trik seperti ini? langsung saja bro
Struktur project
download.php gambar1.jpg gambar2.jpg gambar3.jpg gambar4.jpg index.php
index.php adalah file utama berisi form untuk gambar yang akan didownload. download.php adalah script php yang akan menzip file dan script untuk mendownload file yang baru saja di buat. Gambar1 sampai gambar4 adalah gambar yang bisa dipilih oleh user untuk didownload.
Index.php
<div class="masthead"> <h2 class="muted">Website - Download as zip </h2> </div> <hr> <form method='post' action="download.php"> <input type='checkbox' name='download[]' value='gambar1.jpg'> <img src='gambar1.jpg'> <input type='checkbox' name='download[]' value='gambar2.jpg'> <img src='gambar2.jpg'> <input type='checkbox' name='download[]' value='gambar3.jpg'> <img src='gambar3.jpg'> <input type='checkbox' name='download[]' value='gambar4.jpg'> <img src='gambar4.jpg'> <br/> <input type='submit' value='download as zip'> </form>
download.php
Untuk penjelasan kode, perhatikan komentarnya.
<?php /* letak folder */ if($_POST){ /* nama zipfile yang akan dibuat */ $zipname = "gambar.zip"; /* proses membuat zip file */ $zip = new ZipArchive; $zip->open($zipname, ZipArchive::CREATE); foreach ($_POST['download'] as $key => $value) { $zip->addFile($value); } $zip->close(); /* preses pembuatan zip file selesai disini */ /* download file jika eksis*/ if(file_exists($zipname)){ header('Content-Type: application/zip'); header('Content-disposition: attachment; filename="'.$zipname.'"'); header('Content-Length: ' . filesize($zipname)); readfile($zipname); unlink($zipname); } else{ $error = "Proses mengkompresi file gagal "; } //end of if file_exist }//end of post ?>
Demo
Coba demonya langsung disini
mantap ga
mas mau tanya…
klo untuk download file folder dan file php dengan php bisa gak ya ???
mau tanya, sebenarnya mudahan mana antara pengunaan WordPress sama PHP ?
thx…
klo mudahan mana ya mudahan wordpress,namun sekedar ngasih tahu..wordpress itu juga dibuat pake PHP. klo cuman buat website perusahaan/berita/informasi/katalog dsb mending wordpress, namun klo ingin membanguns solusi yang tidak ada di wordpress, pakelah php, misalkan sistem pendaftaran online atau siakad dsb