How to Create Zip File and Download in Laravel 7/6?

How to Create Zip File and Download in Laravel 7/6?

In this post we will give you information about How to Create Zip File and Download in Laravel 7/6?. Hear we will give you detail about How to Create Zip File and Download in Laravel 7/6?And how to use it also give you demo for it if it is necessary.

In this tutorial, i am writing example of laravel 7/6 create zip archive file and download in response. i will give you example step by step how to create zip file from folder and download in laravel 7/6. we will create zip file using ziparchive class in php laravel 7/6 application.

I also post few months ago how to create zip file using composer package in laravel 5. if you want to create zip file using another composer package then you can follow this tutorial: Laravel 5 create and download zip file example using zipper.

But i will highly recommended to create zip archive file without using anymore composer package, because you can easily make zip file using php ziparchive class. ziparchive class provide method to add files so you can easily add files with relative path, so you can easily create folder inside your zip file.

In this post, i will show you how to create very simple way to zip file in laravel 6 application. So let’s follow few things and make it simple example.

Step 1: Create Route

First thing is we put one route in one for download created zip file. So simple add both routes in your route file.

routes/web.php

Route::get('download-zip', 'ZipController@downloadZip');

Step 2: Create Controller

Same things as above for route, here we will add one new method for route. downloadZip() will generate new zip file and download as response, so let’s add bellow:

app/Http/Controllers/ZipController.php

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use File;

use ZipArchive;

class ZipController extends Controller

{

/**

* Display a listing of the resource.

*

* @return IlluminateHttpResponse

*/

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));

}

}

Ok now you can run project and open that route like.

But make sure you have “myFiles” folder in public directory and add some pdf files on that file so it will create zip file with those files.

Now you can test it by using following command:

php artisan serve

Now you can open bellow URL on your browser:

Also see:How to Send Mail in Laravel 6?

http://localhost:8000/download-zip

I hope it can help you…

Hope this code and post will helped you for implement How to Create Zip File and Download in Laravel 7/6?. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

Leave a Comment

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

87  +    =  91

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US