How to Create, Extract Zip and Delete Files or Folders from Zip In Laravel

Last modified on March 1, 2020 1 min read

HIRE US 🖐
We're available to do freelance project. Take a look at our services!

In this article, I’m going to share an easy method to zip & unzip in Laravel. I’m testing in Laravel 6.2. Let’s get started:

Table of Contents

  1. Install Package
  2. Create Zip
  3. Extract Zip
  4. Delete Files/Folders from Zip
  5. Basic Operations

Install Package

We’ll use zanysoft/laravel-zip package. Install the package using this command:

composer require zanysoft/laravel-zip

Create Zip

We’re able to create zip using this package. I’m showing a few exmaples.

use ZanySoft\Zip\Zip;

$zip = Zip::create('file.zip'); // create zip
$zip->add(public_path()); // add public path to the zip file

We can also add more files/folders to the zip file like these:

$zip->add('/path/to/my/file');

// declaring path
$zip->setPath('/path/to/my')->add('file');

// add directory
$zip->add('/path/to/my/directory');

// add directory (only its content)
$zip->add('/path/to/my/directory', true);

We can also add multiple files/directories to zip:

// using array as parameter
$zip->add( array('/path/to/my/file1', '/path/to/my/file2');

// chaining methods
$zip->add('/path/to/my/file1')->add('/path/to/my/file2');

// declaring path
$zip->setPath('/path/to/my')->add('file1')->add('file2');

Extract Zip

We can easily unzip any zip file. Have a look at the example:

$zip = Zip::open('file.zip');
$zip->extract(public_path() . '/uncompressed');

We can also unzip multiple multiple files too. Here are some examples:

// extract whole archive
$zip->extract('/path/to/uncompressed/files');

// extract a file
$zip->extract('/path/to/uncompressed/files', 'file');

// extract multiple files
$zip->extract('/path/to/uncompressed/files', array('file1','file2'));

Delete Files/Folders from Zip

By using this package we’re able to delete files/folders from the compressed zip file. Take a look at the example:

$zip = Zip::open('file.zip');
$zip->delete('public/robots.txt');

We can also delete multiple files/directories from zip:

// using array as parameter
$zip->delete( array('file1', 'file2') );

// chaining methods
$zip->delete('file1')->delete('file2');

Basic Operations

Here are some of functionalities of the package:

Check zip file:

$is_valid = Zip::check('file.zip');

List content of zip file:

$zip->listFiles();

Use password for zip extraction:

// set password
$zip->setPassword('your-password');

// get password
$password = $zip->getPassword();

Close zip file:

$zip->close();

There are more additional functionalities. Please check these from GitHub.

Author

Hey, I'm Md Obydullah. I build open-source projects and write on Laravel, Linux server, modern JavaScript and more on web development.

Follow

Leave a Reply

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