Laravel 8 Zip 파일을 만들고 다운로드하는 방법은 무엇입니까?
10006 단어 laravelprogramminglaravelziptutorial
https://codeanddeploy.com/blog/laravel/how-to-create-laravel-8-zip-file-and-download
이 게시물에서는 Laravel 8 zip 파일을 수행하고 파일을 압축한 후 다운로드해 보겠습니다. 이 튜토리얼은
ZipArchive
클래스와 stechstudio/laravel-zipstream
라는 Laravel 패키지를 사용하여 파일을 압축하고 다운로드하는 데 도움이 됩니다.따라서 이 게시물에서는 애플리케이션에서 Laravel zip을 구현하는 방법에 대해 두 가지 방법을 배웁니다.
방법 #1: ZipArchive 클래스 사용
이 방법에서는 PHP ZipArchive 클래스를 사용하여 선택한 폴더를 반복하여 zip 파일에 첨부하고 다운로드합니다.
먼저 컨트롤러를 만들어야 합니다.
php artisan make:controller ZipController
그런 다음 경로를 만듭니다. 아래 코드를 참조하십시오.
<?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('zip', [ZipController::class, 'index']);
이제 컨트롤러에서 Laravel zip을 구현해 보겠습니다. 아래는 ZipController의 전체 코드입니다.
<?php
namespace App\Http\Controllers;
use File;
use ZipArchive;
use Illuminate\Http\Request;
class ZipController extends Controller
{
public function index()
{
$zip = new ZipArchive;
$fileName = 'zipFileName.zip';
if ($zip->open(public_path($fileName), ZipArchive::CREATE) === TRUE)
{
// Folder files to zip and download
// files folder must be existing to your public folder
$files = File::files(public_path('files'));
// loop the files result
foreach ($files as $key => $value) {
$relativeNameInZipFile = basename($value);
$zip->addFile($value, $relativeNameInZipFile);
}
$zip->close();
}
// Download the generated zip
return response()->download(public_path($fileName));
}
}
참고: 이 코드를 테스트하고 이미지 및 PDF와 같은 일부 파일을 저장하려면 공용 디렉토리에 파일 폴더를 만드는 것을 잊지 마십시오.
이제 위의 코드를 작성해 보겠습니다. 다음 명령을 실행합니다.
php artisan serve
그런 다음 다음 URL을 실행합니다.
http://127.0.0.1:8000/zip
이제 파일이 선택된 zip 파일을 다운로드합니다.
방법 #2: Laravel Zip 패키지 사용
이 방법에서는 stechstudio의 laravel-zipstream 패키지를 사용하고 있습니다. 이것을 설치하여 시작합시다.
composer require stechstudio/laravel-zipstream
그런 다음 컨트롤러 메서드를 만들어 보겠습니다. 나는 그것을 method2라고 명명했습니다. 아래 코드를 참조하십시오.
<?php
namespace App\Http\Controllers;
use File;
use Zip;
use Illuminate\Http\Request;
class ZipController extends Controller
{
public function method2()
{
return Zip::create('zipFileName.zip', File::files(public_path('files')));
}
}
그런 다음 경로를 만들어 보겠습니다.
<?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('zip-download', [ZipController::class, 'method2']);
그런 다음 이 패키지를 사용하여 Laravel zip을 테스트합니다.
브라우저에 대한 URL을 실행합니다.
http://127.0.0.1:8000/zip-download
이 패키지에 대한 자세한 내용은 설명서here를 참조하십시오.
이제 Laravel zip을 구현할 때 2가지 방법을 배우는데 도움이 되었으면 합니다. 위의 방법에 무엇을 사용할지는 귀하에게 달려 있습니다.
이 튜토리얼이 도움이 되었으면 합니다. 이 코드를 다운로드하려면 여기https://codeanddeploy.com/blog/laravel/how-to-create-laravel-8-zip-file-and-download를 방문하십시오.
행복한 코딩 :)
Reference
이 문제에 관하여(Laravel 8 Zip 파일을 만들고 다운로드하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codeanddeploy/how-to-create-laravel-8-zip-file-and-download-33no텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)