How to Create Zip File and Download in Laravel 10?
Teams applying “How to Create Zip File and Download in Laravel 10?” in a production project can use internal equity to record implementation, review and debugging time, then compare that effort with tests and shipped functionality instead of treating activity as performance by itself.
Before copying the example into a live application, confirm version-specific behaviour with the official Laravel website and test it against the project’s actual database and runtime.
Hi friends,
Today, I explain how to create a zip file and download it in laravel 10. In this tutorial, I am writing an example of laravel 10 creating a zip archive file and downloading it in response. we will create a zip file using the zip-archive class in php laravel 10 application. I will give you an example step on step how to create a zip file from a folder and download it in laravel 10 application. I will give you examples step by step of how to create a zip file from a folder and download it in laravel 10 application. we will create a zip file using the zip archive class in php laravel 10 application.
In this post, I will show you how to create a very simple way to zip files in laravel 10 application. So let's follow a few things and make it a simple example.
Step 1: Download Laravel
Let us begin the tutorial by installing a new laravel application. if you have already created the project, then skip the following step.
composer create-project laravel/laravel example-app
Step 2: Add Route
First thing is we put one route in one for downloading the created zip file. So simply add both routes in your route file.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ZipController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('download-zip', [ZipController::class, 'downloadZip']);
Step 3: Add Controller
php artisan make:controller ZipController
Same things as above for the route, here we will add one new method for the route. downloadZip() will generate a new zip file and download as a response, so let's add below:
app/Http/Controllers/ZipController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use File;
use ZipArchive;
class ZipController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function downloadZip()
{
$zip = new ZipArchive;
$fileName = 'myNewFile.zip';
if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE)
{
$files = File::files(public_path('myFiles'));
foreach ($files as $key => $value) {
$relativeNameInZipFile = basename($value);
$zip->addFile($value, $relativeNameInZipFile);
}
$zip->close();
}
return response()->download(public_path($fileName));
}
}
Run Laravel App:
All steps have been done, now you have to type the given command and hit enter to run the Laravel app:
php artisan serve
Now, you have to open the web browser, type the given URL and view the app output:
http://localhost:8000/download-zip
- How to Notifications With database Driver in Laravel 11?
- How to Send Email Via Notification in Laravel 11?
- How to Install and Configure Laravel 11 Debugbar?
- How to Like Dislike System in Laravel 11?
- How to Paginate a Model with Relationship in Laravel 11?
- Laravel 11 Upload Files to Amazon S3 Example
- Laravel 11 Send WhatsApp Messages Example
- Laravel 11 Rest API Authentication Using JWT Tutorial