Contoh Program PHP untuk Kompresi (ZIP) File

Sampai saat ini saya masih menganggap bahwa PHP merupakan salah satu pemrograman yang luar biasa. Memiliki banyak fungsi dan library serta didukung oleh begitu banyak kontributor dari seluruh dunia. Salah satu fungsionalitas yang tersedia di php adalah kompresi file atau zip file. Apakah sulit membuatnya? Ternyata tidak. Karena semua sudah disediakan dengan sangat baik oleh PHP.

Simak Contoh Program PHP untuk Kompresi (ZIP) File di bawah ini.

Class Library PHP ZipArchive

Untuk keperluan kompresi (ZIP) file dengan PHP, library yang diperlukan adalah PHP ZipArchive. Library ini berupa class, sudah disediakan oleh PHP mulai versi 5.2. Penjelasan dan spesifikasi lengkap dapat ditemukan di PHP Manual bagian ZipArchive. Class ini memiliki kemampuan yang cukup lengkap, mulai dari kompresi file tunggal atau banyak, baca isi file terkompresi (zip), ekstraksi file terkompresi (zip), hingga mengatur password pada file terkompresi (zip).

Contoh Program PHP untuk Kompresi (ZIP) File

Pada contoh program ini, kita akan membuat form sederhana yang akan mengupload suatu file. Selanjutnya dengan PHP, kita akan mengkompresi file tersebut dan menyimpannya di file terkompresi “data.zip”. Pada contoh program ini kita hanya akan mengkompresi file tunggal. Walaupun demikian, pada dasarnya untuk mengkompresi beberapa file sekaligus, sama mudahnya.

  1. <html>
  2. <head><title>Kompresi File di PHP</title></head>
  3. <body>
  4. <h1>Kompresi File di PHP</h1>
  5. <form action="" method="post" enctype="multipart/form-data">
  6. <input type="file" name="file" placeholder="Pilih File"/>
  7. <input type="submit" name="Submit" value="Upload dan Kompresi"/>
  8. </form>
  9. <?php
  10. if(isset($_POST['Submit'])) {
  11. $namafile = $_FILES['file']['name'];
  12. $dir = dirname(__FILE__);
  13. if (is_uploaded_file($_FILES['file']['tmp_name'])) {
  14. $cp = move_uploaded_file ($_FILES['file']['tmp_name'], $dir."/".$namafile);
  15. if ($cp) {
  16. //kompresi
  17. $zip = new ZipArchive();
  18. $file_terkompresi = "data.zip";
  19. if ($zip->open($file_terkompresi, ZipArchive::CREATE)!==TRUE) {
  20. die("cannot open create zip file\n");
  21. }
  22. $zip->addFile($dir."/".$namafile, $namafile);
  23. $zip->close();
  24. echo "<h2>File berhasil diupload dan dikompresi.</h2>";
  25. echo sprintf("File asal <strong>%s</strong> ( %s bite(s) )",
  26. $_FILES['file']['name'], filesize($dir."/".$namafile));
  27. echo sprintf("<br/>File terkompresi <a href='%s'><strong>%s</strong></a> ( %s bite(s) )",
  28. $file_terkompresi, $file_terkompresi, filesize($dir."/".$file_terkompresi));
  29. }
  30. } else {
  31. die("Gagal upload");
  32. }
  33. }
  34. ?>
  35. </body>
  36. </html>

Penjelasan Contoh Program

  • Baris 5-8 : Form inputan untuk upload file.
  • Baris 12 : Menentukan lokasi penyimpanan file.
  • Baris 13-14 : Proses upload file. Silahkan baca buku gratis Pemrograman Web dengan PHP & MySQL untuk lebih jelasnya, terutama Bab 7.
  • Baris 17: Memanggil dan membentuk obyek class ZipArchive.
  • Baris 18: Menentukan nama file terkompresi.
  • Baris 19-21: Membuka file terkompresi, jika belum ada makan otomatis akan dibuat baru. Kita menggunakan Pre-defined variable ZipArchive::CREATE.
  • Baris 22: Menambahkan file yang diupload ke file ZIP.
  • Baris 23: Menutup proses / file terkompresi.
  • Baris 24-28: Menampilkan pesan bahwa file berhasil dikompresi.

Berikut ini contoh tampilan dari program di atas.

contoh-program-php-kompresi-zip

Demikian contoh program php untuk kompresi (zip) file dengan PHP. Semoga bermanfaat.

Baca juga beberapa contoh program php lainnya

Berbagi itu indah...Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0Pin on Pinterest0Digg this

4 comments

  1. tanya pak, kalau library itu kita bikin sendiri bisa? bikin posting dong caranya bikin library untuk kompresi file dengan metode yg berbeda dari zip.

Leave a Reply

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