andriajah Thu Apr 2020 1 year ago

Bagaimana Cara Membuat File Zip dan Mengunduh di Laravel 7/6?

Dalam tutorial ini, saya menulis contoh laravel 7/6 membuat file arsip zip dan mengunduh sebagai respon. saya akan memberi Anda contoh step demi step cara membuat file zip dari folder dan unduh di laravel 7/6. kita akan membuat file zip menggunakan kelas ziparchive di aplikasi php laravel 7/6.

kelas ziparchive menyediakan metode untuk menambahkan file sehingga Anda dapat dengan mudah menambahkan file dengan jalur relatif, sehingga Anda dapat dengan mudah membuat folder di dalam file zip Anda.

Dalam posting ini, saya akan menunjukkan kepada Anda bagaimana cara membuat file zip yang sangat sederhana di aplikasi laravel 6. Jadi mari kita ikuti beberapa hal dan menjadikannya contoh sederhana.

Step 1: Create Route

Hal pertama adalah kita menempatkan satu rute dalam satu untuk mengunduh file zip yang dibuat. Sangat sederhana, tambahkan kedua route di file route Anda.

routes/web.php

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

Step 2: Create Controller

Hal yang sama seperti di atas untuk route, di sini kita akan menambahkan satu metode baru untuk route. downloadZip() akan menghasilkan file zip baru dan mengunduh sebagai respons, jadi mari kita tambahkan di bawah ini:

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

Ok sekarang Anda dapat menjalankan proyek dan membuka route itu seperti.

Tetapi pastikan Anda memiliki folder "myFiles" di direktori public dan menambahkan beberapa file pdf pada file itu sehingga akan membuat file zip dengan file-file itu.

Sekarang Anda dapat mengujinya dengan menggunakan perintah berikut:

php artisan serve

Sekarang Anda dapat membuka URL di bawah ini di browser Anda:

http://localhost:8000/download-zip 

Saya harap ini dapat membantu Anda ...

ziparchive laravel 7 laravel 6 laravel