IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Zip] comment compresser un fichier en php?


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut [Zip] comment compresser un fichier en php?
    j'ai essayé d'utiliser ce code en dessous il affiche la compression mais je ne sais pas comment faire pour avoir le fichier zippé
    j'ai utilisé la librairie zip.lip.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    require("zip.lib.php") ; //indiquez le chemin d'accès à la librérie
     
    $zip = new zipfile() ; //on crée un fichier zip
     
    $filename = 'dump.sql' ;
    $fp = fopen($filename,'r') ; //on ouvre le fichier en lecture seule
    $contenu = fread($fp, filesize($filename)) ; //on enregistre le contenu
    fclose($fp) ; //on ferme FTP
     
    $zip->addfile($contenu, $filename) ; //on ajoute le fichier
     
    $archive = $zip->file() ; //on associe l'archive
     
    header('Content-Type: application/x-zip') ; //on détermine les en-tête
    header('Content-Disposition: inline; filename=archive.zip') ;
     
    echo $archive ;
    ?>
    personne n'a une réponse?

  2. #2
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents('archive.zip', $archive);

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 66
    Points : 61
    Points
    61
    Par défaut
    salut !
    http://www.php.net/manual/fr/ref.zip.php
    ca devra t'aider .

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    merci de ta réponse j'ai rajouté ce que tu m'as demandé , et voila les messages d'erreurs qui s'affichent.
    peut tu me dire pourquoi?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\sauo\functionsauv.php:61) in c:\program files\easyphp1-8\www\sauo\zipperdump.php on line 15
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\sauo\functionsauv.php:61) in c:\program files\easyphp1-8\www\sauo\zipperdump.php on line 16
     
    Fatal error: Call to undefined function: file_put_contents() in c:\program files\easyphp1-8\www\sauo\zipperdump.php on line 18

  5. #5
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    tu utilises easyphp qui installe php4, alors que file_put_contents n'est disponible que sur php5!

    bon, dans ce cas, remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file_put_contents('archive.zip', $archive);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $open = fopen('tonRepertoire\archive.zip', "wb");
    fwrite($open, $archive);
    fclose($open);

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    Merci de ta réponse !

    j'ai rajouter le bout de code mais cela na marche pas toujours

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\sauo\functionsauv.php:61) in c:\program files\easyphp1-8\www\sauo\zipperdump.php on line 15

    Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\sauo\functionsauv.php:61) in c:\program files\easyphp1-8\www\sauo\zipperdump.php on line 16
    Ces messages d'erreurs signifient que tu essayes d'exécuter la fonction header() alors que tu as déjà émis quelque chose au navigateur (texte avec echo ou balise html...). En effet, la fonction header() doit être exécutée en tout 1er dans ton site avant qu'une autre fonction envoit quelque chose au navigateur.
    Fatal error: Call to undefined function: file_put_contents() in c:\program files\easyphp1-8\www\sauo\zipperdump.php on line 18
    Ce message d'erreur a du disparaître avec la réponse donnée par SegmentationFault, non ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 193
    Points : 58
    Points
    58
    Par défaut
    Merci de ta réponse!
    Citation Envoyé par Sub0
    Ces messages d'erreurs signifient que tu essayes d'exécuter la fonction header() alors que tu as déjà émis quelque chose au navigateur (texte avec echo ou balise html...). En effet, la fonction header() doit être exécutée en tout 1er dans ton site avant qu'une autre fonction envoit quelque chose au navigateur.
    Ce message d'erreur a du disparaître avec la réponse donnée par SegmentationFault, non ?
    non pas du tout cela ne marche pas toujours a tu une autre idée?

  9. #9
    Rédactrice
    Avatar de xave
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2002
    Messages : 871
    Points : 1 094
    Points
    1 094
    Par défaut
    Salut,

    utilises ob_start() ob_end_flush() pour résoudre tes problèmes de headers.

    Voir ici et pour la doc

Discussions similaires

  1. comment compresser un fichier excel avec talend?
    Par sinoun dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 14/02/2012, 15h08
  2. [AC-2003] Comment compresser un fichier
    Par SSJconsult dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/04/2010, 12h10
  3. Comment compresser un fichier et le sauvergarder?
    Par vg-matrix dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/09/2009, 19h01
  4. Comment compresser les fichiers volumineux ?
    Par ThanosT dans le forum Framework .NET
    Réponses: 4
    Dernier message: 26/09/2006, 15h44
  5. [Fichier Zip] Comment zipper un fichier
    Par caro_a dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/05/2004, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo