Cara Kompres File ke Dalam Bentuk ZIP Menggunakan PHP - Dengan PHP, kita bisa membuat aplikasi sederhana untuk kompresi file ke dalam bentuk ZIP.
Pada tutorial ini akan dibahas bagaimana cara membuat script PHP untuk melakukan kompresi file ZIP. Skenario untuk studi kasus yang diambil di sini adalah: user nantinya akan memilih file yang akan dikompresi melalui form, setelah itu ia mengklik tombol submit, dan hasilnya akan diperoleh file kompresi ZIP dari file yang dipilih tadi.
untuk PHP yang dijalankan di Windows OS, pastikan Sobat telah mengaktifkan php_zip.dll di file php.ini. Bagaimana caranya? Caranya adalah buka terlebih dahulu file php.ini, bila Sobat menggunakan AppServ caranya klik START > AppServ > Configuration Server > PHP Edit The php.ini Configuration File. Selanjutnya cari baris extension=php_zip.dll. Pastikan tidak ada tSobat titik koma (;) di depan baris tersebut. Bila sudah, simpan kembali php.ini, dan restart Apache (Web Server).
Nah… sekarang kita mulai membuatnya.
Pertama-tama kita buat form untuk memilih file yang akan dikompres.
<form enctype="multipart/form-data" action="kompres.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> Pilih file yang akan dikompresi <input name="file" type="file" /> <input type="submit" name="submit" value="Submit" /> </form>
Selanjutnya kita buat script kompres.php nya.
<?php $namaFile = $_FILES['file']['name']; $tmpName = $_FILES['file']['tmp_name']; $fp = fopen($tmpName, 'r'); $isiFile = fread($fp, filesize($tmpName)); fclose($fp); $zip = new ZipArchive(); $fileKompresi = $namaFile.".zip"; $kompresi = $zip->open($fileKompresi, ZIPARCHIVE::CREATE); if ($kompresi) { $zip->addFromString($namaFile, $isiFile); $zip->close(); echo "Kompresi Sukses"; } else echo "Kompresi Gagal"; ?>
Keterangan:
- Baris ke-3 digunakan untuk mendapatkan nama file yang akan dikompresi. Nama file ini nanti akan digunakan untuk memberi nama file hasil kompresi (lihat baris ke-11).
- Baris ke-4 digunakan untuk menyimpan temporary file yang akan dikompresi. File temporary ini nantinya akan dibaca isinya (baris ke-6 s/d 8).
- Baris ke-10 digunakan untuk membuat obyek ZipArchive.
- Baris ke-13 digunakan untuk membuat file kompresi.
- Baris ke-14 melakukan pengecekan, bila file kompresi berhasil dibuat maka isi file asli yang dibaca akan dimasukkan ke dalam file kompresi. Sedangkan bila gagal, muncul pesan kegagalan.
Dari contoh ini, Anda bisa kembangkan sendiri bagaimana jika kita ingin mengkompresi beberapa file menjadi satu.