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

Langage PHP Discussion :

Création de .zip


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club Avatar de PiXxz
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2017
    Messages : 33
    Points : 27
    Points
    27
    Par défaut Création de .zip
    Bonjour,

    Je travaille actuellement sur une application web permettant de générer des .docx. Pour ce faire je touche au document.xml (obtenue lors de l'extraction du fichier.docx) que je modifie comme il me plait grâce a simplexmlelement. Le problème est de reconstruire mon .docx, j'ai donc penser a réaliser une archives des dossiers & fichiers extrait du fichier.docx une fois l'archive réaliser il suffit de remplacer le .zip par .docx pour retrouver notre documents .docx modifié.

    Si quelqu'un pourrait m'aider sur la création d'un zip en conservant les dossier que comporte le fichier.docx.

    merci,

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 451
    Points : 43 096
    Points
    43 096
    Par défaut
    Jettes un oeil sur la doc officielle :
    http://php.net/manual/fr/zip.examples.php
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Nouveau membre du Club Avatar de PiXxz
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2017
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    salut,
    Merci d'avoir répondu mais mon problème est que je dois créer une archives avec plusieurs dossiers comportant les fichiers et pas seulement des fichiers.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour faire cela, il suffit d'indiquer le nom du répertoire dans le nom du fichier de destination dans l'archive.

  5. #5
    Nouveau membre du Club Avatar de PiXxz
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2017
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Bonjour,
    voici le code que j'utilise mais j'obtient une archive non supporter "le fichier ne peut pas être ouvert comme une archive"
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    createZip('C:/Users/bob.b/Documents/GED/word/DIPDE/word/wordbase/','C:/Users/bob.b/Documents/GED/word/DIPDE/word/wordbase/'.date("j-m-Y_G-i").'/');
     
          $zip = new ZipArchive();
     
          if(is_dir('C:/Users/bob.b/Documents/GED/word/DIPDE/word/wordbase/'))
          {
     
            if($zip->open('Archive.zip', ZipArchive::CREATE) == TRUE)
    	{
     
    	  $fichiers = scandir('C:/Users/bob.b/Documents/GED/word/DIPDE/word/wordbase/');
    	  unset($fichiers[0], $fichiers[1]);
     
    	  foreach($fichiers as $f)
    	  {
    	    if(!$zip->addFile('C:/Users/bob.b/Documents/GED/word/DIPDE/word/wordbase/'.$f, $f))
    	    {
    	      echo 'Impossible d'ajouter &quot;'.$f.'&quot;.<br/>';
    	    }
    	  }
     
    	  $zip->close();
     
    	  // On peut ensuite, comme dans le tuto de DHKold, proposer le téléchargement.
    	  header('Content-Transfer-Encoding: binary'); //Transfert en binaire (fichier).
    	  header('Content-Disposition: attachment; filename="Archive.zip"'); //Nom du fichier.
    	  header('Content-Length: '.filesize('Archive.zip')); //Taille du fichier.
     
    	  readfile('Archive.zip');
    	}
    	else
    	{
    	  echo 'Erreur, impossible de créer l'archive.';
    	}
          }
          else
          {
            echo 'Le dossier &quot;upload/&quot; n'existe pas.';
          } 
     
          ?>

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    le nom du répertoire dans l'archive doit être ajouté dans le 2e argument de "addFile"
    http://php.net/manual/fr/ziparchive.addfile.php

    comme cela par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $zip->addFile('C:/Users/[...]/wordbase/'.$f, "répertoire/$f")

  7. #7
    Nouveau membre du Club Avatar de PiXxz
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2017
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    merci pour ton aide j'ai bien vue sur la doc un commentaire expliquait mon problème,
    or je n'arrive pas a mettre la solution en place pour obtenir une archive complete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	    if(!$zip->addFile('C:/Users/luc.demessine/Documents/GED/word/DIPDE/word/wordbase/'.$f, "C:/Users/luc.demessine/Documents/GED/word/DIPDE/word/wordbase/$f"))
    je fais quelque chose de mal ?

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Dans le 2e argument, c'est le répertoire souhaité dans l'archive et non le nom du répertoire où se trouve le fichier sur le disque.

  9. #9
    Nouveau membre du Club Avatar de PiXxz
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2017
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Un document word (.docx) décompressé se présente sous la forme
    folder1
    --file
    folder2
    --folder2.1
    ----files
    --files
    folder3
    --files
    folder4
    --folder4.1
    ----files
    --folder4.2
    ----files
    --folder4.3
    ----files
    --files
    files


    il y a donc plusieurs répertoire à renseigner?

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ben, il faut que tu mettes chaque fichier dans son répertoire.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $zip->addFile('C:/Users/[...]/wordbase/fichier_a_la_racine', "fichier_a_la_racine");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $zip->addFile('C:/Users/[...]/wordbase/sous_dossier/fichier_dans_le_sous_dossier', "sous_dossier/fichier_dans_le_sous_dossier");
    Si tu as des sous-dossiers dans ton dossier à archiver, il va sans doute te falloir un scan récursif.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Zip] ZipArchive, la création ne fonctionne pas
    Par sunshine33 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/07/2008, 09h22
  2. [Zip] Création d'un fichier zip avec zip.lib.php corrompue
    Par fdthierry dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 02/06/2008, 14h01
  3. Réponses: 1
    Dernier message: 18/02/2008, 07h53
  4. IllegalStateException après la création d'un zip
    Par GreenJay dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/07/2007, 15h16
  5. [Zip] Problème de création d'archives (Zip.lib.php)
    Par BOUHAMOU dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 24/04/2006, 12h51

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