ホームページ  >  記事  >  バックエンド開発  >  PHP ZipArchiveを使用してzipファイルを作成してダウンロードするにはどうすればよいですか?

PHP ZipArchiveを使用してzipファイルを作成してダウンロードするにはどうすればよいですか?

藏色散人
藏色散人オリジナル
2019-02-28 13:19:594037ブラウズ

プロジェクトの開発プロセス中に、zip ファイルを作成してダウンロードを提供する機能を実装する必要がある場合があります。ここでは、ZipArchive クラスを使用して zip ファイルを作成し、それをダウンロードします。

PHP ZipArchiveを使用してzipファイルを作成してダウンロードするにはどうすればよいですか?

簡単な例を挙げてみましょう。場合によっては、php コードを使用して zip アーカイブ ファイルを作成し、その zip ファイルに写真やドキュメントなどを追加して、ダウンロード用に提供する必要があります。ここでは、zip アーカイブ ファイルの作成に役立つ非常に単純なメソッド createZip() を作成します。このメソッドを使用すると、ファイル、ドキュメント、画像、パスの配列を簡単に渡すことができます。

関連する推奨事項: 「[zip ファイル ライブラリ] 10 php zip ファイル ライブラリのダウンロード

以下に、非常に単純な Index.php ファイルの例を書きました。これをコピーしてください。直接実行し、テストのためにローカルで実行します。

index.php ファイルに使用可能な画像ファイルがあることを確認してください:

1)demo1.jpg
2)demo2.jpg

コード例は次のとおりです:

 <?php


/* create a compressed zip file */
function createZip($files = array(), $destination = &#39;&#39;, $overwrite = false) {


    if(file_exists($destination) && !$overwrite) { return false; }


    $validFiles = [];
    if(is_array($files)) {
        foreach($files as $file) {
            if(file_exists($file)) {
                $validFiles[] = $file;
            }
        }
    }


    if(count($validFiles)) {
        $zip = new ZipArchive();
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
            return false;
        }


        foreach($validFiles as $file) {
            $zip->addFile($file,$file);
        }


        $zip->close();
        return file_exists($destination);
    }else{
        return false;
    }
}


$fileName = &#39;my-archive.zip&#39;;
$files_to_zip = [&#39;demo1.jpg&#39;, &#39;demo2.jpg&#39;];
$result = createZip($files_to_zip, $fileName);


header("Content-Disposition: attachment; filename=\"".$fileName."\"");
header("Content-Length: ".filesize($fileName));
readfile($fileName);

この記事は、 zip ファイルを作成するための PHP ZipArchive と、ダウンロード方法が紹介されています。困っている友人に役立つことを願っています。

以上がPHP ZipArchiveを使用してzipファイルを作成してダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。