Autour de Laravel

Zip un fichier uploadé

Avatar de StephaneMarry
StephaneMarry

Bonjour tout le monde.

J'ai un formulaire avec l'upload de fichiers et j'aimerais compresser ses fichiers en format .ZIP. Je ne trouve pas de doc ou de solution pour faire ça. Si quelqu'un peut m'aiguiller, ca serait super :)

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

T'as déjà la classe ZipArchive https://pub.phyks.me/sdz/sdz/les-fonctions-zip-en-php.html. Il faut une extension php activée donc avoir si c'est activé et/ou si tu as la main sur ton serveur.

Et je vois que si tu demande à notre ami google "laravel zip" t'as plein de trucs.

Je n'ai jamais fait ça donc je ne peux pas t'aider beaucoup plus.

Avatar de StephaneMarry
StephaneMarry

Merci à toi pour les informations, effectivement j'avais vu zip archive. Mais je n'arrive pas à l'utiliser correctement. :s


        $fileName = null;
    
        
        if ($request->hasFile('media')) {
             
        $destinationPath = 'uploads/transfer';
            $file->move($destinationPath, $fileName);
         
            $zip = new ZipArchive;
            $zip_name = $file->getClientOriginalName().".zip";
             if( $zip->open($destinationPath."/".$zip_name, ZIPARCHIVE::CREATE)===TRUE){
                $zip->addFile($file, $file->getClientOriginalName());
                $zip->close();
             }
echo 'Upload Successful.';
        }
Avatar de StephaneMarry
StephaneMarry

J'ai fait des test pour vérifier où ca coince. Le open marche, cependant c'est dans la addfile que ça ne marche pas.

Avatar de StephaneMarry
StephaneMarry

Bon j'ai trouvé en comprenant un peu mieu ^^

  // move uploaded file to public/uploads folder
            $destinationPath = 'uploads/transfer';
           
         
            $zip = new ZipArchive;
            $zip_name = $file->getClientOriginalName().".zip";

             if($zip->open($destinationPath."/".$zip_name, ZIPARCHIVE::CREATE)===TRUE){
                $zip->addFile($file,$file->getClientOriginalName());
                $zip->close();
             }

Vous ne pouvez pas répondre à ce sujet.