Maison >développement back-end >tutoriel php >Comment créer et télécharger une archive ZIP de plusieurs fichiers à l'aide de PHP ?

Comment créer et télécharger une archive ZIP de plusieurs fichiers à l'aide de PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 17:14:12660parcourir

How to Create and Download a ZIP Archive of Multiple Files Using PHP?

Création d'une archive ZIP à partir de plusieurs fichiers en PHP

Question : Comment puis-je télécharger plusieurs fichiers au format ZIP archiver en utilisant PHP ?

Solution :

Pour y parvenir, vous pouvez exploiter la classe ZipArchive de PHP. Voici comment procéder :

  1. Créer une archive ZIP :

    $files = array('readme.txt', 'test.html', 'image.gif');
    $zipname = 'file.zip';
    $zip = new ZipArchive;
    $zip->open($zipname, ZipArchive::CREATE);
  2. Ajouter des fichiers à le ZIP Archive :

    foreach ($files as $file) {
      $zip->addFile($file);
    }
  3. Fermer l'archive ZIP :

    $zip->close();
  4. Diffuser l'archive ZIP vers le Client :

    header('Content-Type: application/zip');
    header('Content-disposition: attachment; filename="'.$zipname.'"');
    header('Content-Length: ' . filesize($zipname));
    readfile($zipname);

La première ligne de la section streaming spécifie le type de contenu sous forme d'archive ZIP. La deuxième ligne demande au navigateur d'afficher une boîte de téléchargement pour l'utilisateur et attribue le nom de fichier file.zip. La troisième ligne calcule et définit l'en-tête Content-Length pour les navigateurs plus anciens qui peuvent rencontrer des problèmes sans connaître à l'avance la taille du fichier.

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