Maison  >  Article  >  développement back-end  >  Comment créer un fichier zip et le télécharger à l'aide de PHP ZipArchive ?

Comment créer un fichier zip et le télécharger à l'aide de PHP ZipArchive ?

藏色散人
藏色散人original
2019-02-28 13:19:594035parcourir

Pendant le processus de développement du projet, nous devrons peut-être implémenter la fonction de création de fichiers zip et de fourniture de téléchargements. Nous pouvons donc ici utiliser la classe ZipArchive pour créer un fichier zip puis le télécharger.

Comment créer un fichier zip et le télécharger à l'aide de PHP ZipArchive ?

Laissez-moi vous donner un exemple simple. Parfois, nous devons utiliser du code php pour créer un fichier d'archive zip, ajouter des photos, des documents, etc. au fichier zip, puis le fournir en téléchargement. Ici, nous allons créer une méthode très simple createZip() qui aidera à créer des fichiers d'archive zip. En utilisant cette méthode, vous pouvez simplement transmettre un tableau de fichiers, documents, images et chemins.

Recommandations associées : "[bibliothèque de fichiers zip] 10 téléchargements de bibliothèque de fichiers zip php"

Ci-dessous, j'ai écrit un exemple de fichier index.php très simple, vous pouvez le copier directement et exécutez-le localement pour le tester.

Assurez-vous qu'il y a un fichier image disponible dans le fichier index.php :

1)demo1.jpg
2)demo2.jpg

L'exemple de code est le suivant :

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

Ceci L'article porte sur l'utilisation de PHP ZipArchive et explique comment créer des fichiers zip et les télécharger. J'espère que cela sera utile aux amis dans le besoin !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn