Cara menggunakan ziparchive not working php

kita akan menggunakan sebuah fungsi bernama ZipArchive,fungsi ini merupakan bawaan dari php (https://www.php.net/ziparchive) jadi bisa digunakan di native maupun framework lainnya yang berbasis php

pertama kita masukan fungsinya ke controller kita

use ZipArchive;

kemudian kita bisa langsung menggunakannya,contoh di bawah saya menggunakannya di dalam fungsi downloadZip yang akan membuat file zip yang berisi banyak file lalu di download

public function downloadZip($id)
    {
        $zip = new ZipArchive;
   
        $fileName = 'arsip_berkas.zip';
   
        if ($zip->open(public_path('zip/'.$fileName), ZipArchive::CREATE) === TRUE)
        {   
            $berkas = ["berkas1.pdf","berkas2.pdf","berkas3.pd"];
            foreach ($berkas as $b) {
                //parameter pertama berisi path/link dari berkas yang akan kita arsipkan kedalam zip sedangkan parameter kedua merupakan path/link/filename baru yang ada di dalam arsip zip
                $zip->addFile(public_path("folder_berkas/".$b), $b);
            }
          
            $zip->close();
            return response()->download(public_path('zip/'.$fileName));
        }
   }

kemudian berkas tersebut akan di arsipkan kedalam bentuk zip lalu di simpan ke server dan kemudian kita download

Cara Membuat Upload dan Ekstrak Zip pada PHP – Hai ketemu lagi dengan saya setelah saya sudah banyak membahas tentang upload file/gambar. Pada kesempatan kali ini saya akan membahas tentang upload and ekstrak zip. Ini biasa digunakan jika upload secara banyak/batch. Daripada user mengupload satu persatu maka akan sangat repot, bagaimana jika ingin menupload ribuan gambar/file? dan jika ada yang gagal maka akan sangat membingungkan gagalnya dimana saja. Oleh karena itu kita bisa membuatnya dengan upload zip dan ekstrak menggunakan kode PHP.

Berikut adalah caranya :

1. Pertama kita buat form upload terlebih dahulu, saya contohnkan pada file index.php

1

2

3

4

5

<form method="post" action="upload.php" enctype="multipart/form-data">

  <label>Pilih Zip File</label>

  <input type="file" name="zip_file" class="form-control" required/>

  <input type="submit" name="btn_zip" class="btn btn-info mt-5" value="Upload" />

</form>

 

2. Seperti yang bisa dilihat pada step diatas, action menuju ke upload.php oleh karena itu kita perlu membuat file upload.php dan mengisinya dengan kode dibawah

upload.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

<?php  

if(isset($_POST["btn_zip"])){

  $output = '';

  if($_FILES['zip_file']['name'] != ''){

     $file_name = $_FILES['zip_file']['name'];

     $array = explode(".", $file_name);

     $name = $array[0];

     $ext = $array[1];

     if($ext == 'zip'){

        $path = 'upload/';

        if (!file_exists($path))

          mkdir($path);

        

        $location = $path . $file_name;

        if(move_uploaded_file($_FILES['zip_file']['tmp_name'], $location)){

           $zip = new ZipArchive;

           if($zip->open($location)){

              $zip->extractTo($path);

              $zip->close();

           }

           unlink($location);

 

           echo "<script>alert('Data berhasil diupload'); location='index.php';</script>";

        }

     } else {

        echo "<script>alert('Hanya .zip yang diperbolehkan'); location='index.php';</script>";

     }

  }

}

?>

 

3. Kemudian jalankan maka kurang lebih tampilannya setelah saya percantik dengan bootstrap akan seperti gambar dibawah

Cara menggunakan ziparchive not working php
Cara menggunakan ziparchive not working php

Jika https://dewankomputer.com/2019/03/15/cara-membuat-upload-dan-ekstrak-zip-pada-php/berhasil mengupload maka akan muncul dialog box dan pada project sobat jika belum ada folder upload maka secara otomatis akan muncul folder upload dengan file/gambar didalamnya. Jika sobat ingin membiarkan pengguna untuk upload file yang besar maka sobat tambahkan pada web server apachenya biasanya pada php.ini atau pada cpanel sobat tambahkan upload_max_filesize menjadi berapapun yang sobat mau. Atau sobat bisa menambahkan pada file .htaccess dengan menambahkan kode dibawah pada file .htaccess dan jika belum ada file tersebuat sobat bisa membuatnya dan diletakkan pada folder project

.htaccess

1

2

3

4

php_value upload_max_filesize 128M

php_value post_max_size 128M

php_value max_execution_time 300

php_value max_input_time 300

Sekian postingan saya tentang Cara Membuat Upload dan Ekstrak Zip pada PHP. Jika ada kesalahan saya mohon maaf dan jika ada pertanyaan silahkan tinggalkan pada kolom komentar dibawah. Jika sobat masih bingung langsung saja download project pada postingan ini. Pada contoh diatas saya menggunakan cara standar. Sobat bisa membuatnya dengan upload menggunakan ajax atau menambahkan progressbar. Untuk itu silahkan sobat kunjungi postingan saya lainnya karena saya tidak akan membahas itu disini jadi sobat gabungkan sendiri.