Cet article vous propose de créer un fichier ZIP en utilisant PhP.

Il est parfois utile pour les projets Web de commerce électronique comme la vente de fichiers PDF, images et Docs etc.. de disposer d’un tel script en PhP. De plus, on peut choisir les fichiers et les télécharger dans le format compressé.

Jetez un oeil à cette démo : https://restezconnectes.fr/demo/zipper/

Code HTML

Le formulaire contient une liste de fichiers de type case à cocher nom de l’entrée des fichiers [].

<form name="zips" method="post">
<?php if(!empty($error)) { ?>
<p style=" border:#C10000 1px solid; background-color:#FFA8A8; color:#B00000;padding:8px; width:588px; margin:0 auto 10px;"><?php echo $error; ?></p>
<?php } ?>
<table width="600" border="1" align="center" cellpadding="10" cellspacing="0" style="border-collapse:collapse; border:#ccc 1px solid;">
  <tr>
    <td width="33" align="center">*</td>
    <td width="117" align="center">Type de fichiers</td>
    <td width="382">Nom de fichiers</td>
  </tr>
  <tr>
    <td align="center"><input type="checkbox" name="files[]" value="flowers.jpg" /></td>
    <td align="center"><img src="files/image.png" title="Image" width="16" height="16" /></td>
    <td>flowers.jpg</td>
  </tr>
  <tr>
    <td align="center"><input type="checkbox" name="files[]" value="fun.jpg" /></td>
    <td align="center"><img src="files/image.png" title="Image" width="16" height="16" /></td>
    <td>fun.jpg</td>
  </tr>
  <tr>
    <td align="center"><input type="checkbox" name="files[]" value="9lessons.docx" /></td>
    <td align="center"><img src="files/doc.png" title="Document" width="16" height="16" /></td>
    <td>9lessons.docx</td>
  </tr>
  <tr>
    <td align="center"><input type="checkbox" name="files[]" value="9lessons.pdf" /></td>
    <td align="center"><img src="files/pdf.png" title="pdf" width="16" height="16" /></td>
    <td>9lessons.pdf</td>
  </tr>
  <tr>
    <td colspan="3" align="center">
    	<input type="submit" name="createpdf" style="border:0px; background-color:#800040; color:#FFF; padding:10px; cursor:pointer; font-weight:bold; border-radius:5px;" value="Télcharger un ZIP" /> 
        <input type="reset" name="reset" style="border:0px; background-color:#D3D3D3; color:#000; font-weight:bold; padding:10px; cursor:pointer; border-radius:5px;" value="Reset" />
    </td>
    </tr>
</table>

</form>

Code PHP
Contient le code PHP secrète les fichiers sélectionnés dans le format de fichier ZIP.
$error = ""; //error holder
if(isset($_POST['createpdf'])){
    $post = $_POST;
    $file_folder = "files/"; // dossier pour charger des fichiers
    if(extension_loaded('zip')){ // Vérification si l'extension ZIP est disponible
        if(isset($post['files']) and count($post['files']) > 0){ // Vérification si des fichiers sont sélectionnés
            $zip = new ZipArchive(); // Lecture librairie zip
            $zip_name = time().".zip"; // nom Zip
            if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){ // Ouverture du zip pour carger les fichiers
                $error .=  "* Création ZIP : désolé cela a échoué !
";
            }
            foreach($post['files'] as $file){
                $zip->addFile($file_folder.$file); // Ajout des fichiers dans le zip
            }
            $zip->close();
            if(file_exists($zip_name)){
                // push to download the zip
                header('Content-type: application/zip');
                header('Content-Disposition: attachment; filename="'.$zip_name.'"');
                readfile($zip_name);
                // supprimer le fichier zip s'il existe dans le temp/
                unlink($zip_name);
            }

        } else
            $error .= "* Veuillez sélectionner les fichiers à Zipper
";
    } else
        $error .= "* Vous n'avez pas l'extension ZIP
";
}

Télécharger :

  Zipper (138,4 KiB, 126 téléchargements)

0 réponses

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.