In this article, we will see example of how to create a zip file in laravel 8. Sometimes clients have requirements to have functionalities like creating zip files for documentation or images and downloading them. So, using ziparchive function you can create a zip file and download it in laravel 8.
In this example, we will see how to create a zip file in laravel using ziparchive without any package. Laravel provides ZipArchive class for creating zip files in laravel. So, we will use ZipArchive in laravel 8 and create a zip file.
So, let's see create and download a zip file using ziparchive in laravel 8.
Read More Official Document of PHP: ZipArchive
In the below code I have created one function in laravel controller and added ZipArchive class.
In this step, we will add a route. So, add the below code in the web.php file.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ZipController ;
Route::get('ziparchive_example', [ZipController ::class, 'ZipArchiveExample']);
Now, we will create a controller and add the function ZipArchiveExample.
app/Http/Controllers/ZipFileController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use ZipArchive;
class ZipController extends Controller
{
public function ZipArchiveExample()
{
$zip = new ZipArchive;
$fileName = 'Zipfile_example.zip';
if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE)
{
$files = \File::files(public_path('ZipArchive_Example'));
foreach ($files as $key => $value) {
$file = basename($value);
$zip->addFile($value, $file);
}
$zip->close();
}
return response()->download(public_path($fileName));
}
}
Now, run the below command in your terminal.
Now you can open the below URL on your browser:
You might also like: