Maison >développement back-end >tutoriel php >Comment créer et télécharger une archive ZIP multi-fichiers en PHP ?

Comment créer et télécharger une archive ZIP multi-fichiers en PHP ?

DDD
DDDoriginal
2024-12-23 19:42:15596parcourir

How to Create and Download a Multi-File ZIP Archive in PHP?

Création d'archives ZIP avec plusieurs fichiers en PHP

Pour télécharger plusieurs fichiers sous la forme d'une seule archive ZIP à l'aide de PHP, nous pouvons exploiter la classe ZipArchive .

Création du ZIP Archive :

$files = array('readme.txt', 'test.html', 'image.gif');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
}
$zip->close();

Ce code crée une archive ZIP nommée « file.zip » et y ajoute les fichiers spécifiés.

Diffusion de l'archive ZIP pour téléchargement :

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

Ces en-têtes préparent le navigateur à afficher une invite de téléchargement et à définir le nom et la taille du fichier appropriés. En lisant le fichier d'archive ZIP et en diffusant son contenu, le navigateur peut le télécharger.

Notes supplémentaires :

  • L'en-tête 'Content-disposition' force le navigateur pour présenter une boîte de téléchargement à l'utilisateur.
  • L'en-tête 'Content-Length' est facultatif, mais il garantit la compatibilité avec les anciens navigateurs.
  • Cette approche permet la création dynamique d'archives ZIP contenant plusieurs fichiers et leur téléchargement.

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