如何创建ZIP文件并在Laravel 9中下载
#php #laravel #laravel9 #zipfile

在本文中,我们将看到如何创建zip文件并在Laravel 9中下载。laravel提供了用于在Laravel中创建ZIP文件的Ziparchive类。

我会为您提供Laravel 9逐步的示例,从文件夹创建一个ZIP文件并下载。我们将使用php和laravel 9应用程序中的zip存档类创建一个zip文件。

因此,让我们看看在Laravel 9中创建一个ZIP文件,并在Laravel 9中使用Ziparchive创建一个ZIP文件。

步骤1:创建路线

在此步骤中,我们将在Web.php文件中创建一个路由

路由/web.php

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\ZipArchiveController;

/*
|--------------------------------------------------------------------------
| 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', [ZipArchiveController::class, 'downloadZip']);

Read Also: Refresh Datatable Without Reloading Page In Laravel 9

步骤2:创建控制器

现在,创建一个新的控制器名称为ziparchivecontroller。

app/http/controllers/ziparchivecontroller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use ZipArchive;

class ZipArchiveController extends Controller
{
    public function downloadZip()
    {                                
        $zip = new ZipArchive;

        $fileName = 'Example.zip';

        if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE)
        {
            $files = \File::files(public_path('Zip_Example'));

            foreach ($files as $key => $value) {
                $file = basename($value);
                $zip->addFile($value, $file);
            }

            $zip->close();
        }

        return response()->download(public_path($fileName));
    }
}

注意:我已经在公共文件夹中创建了一个zip_example文件夹,并添加了一些图像。因此,您还需要创建一个文件夹并添加一些文件。

输出:

http://localhost:8000/download-zip