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] Erreur avec la méthode add() de PclZip


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut [Zip] Erreur avec la méthode add() de PclZip
    Salut,

    J'ai une boucle qui liste des fichiers et qui les ajoute dans une archive zip créée avec pclzip.
    Voila le code:

    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
    // Création de l'archive
    $ZIP = FALSE;
    $filename_global = "cron_sqlsave_".$date;
    $archive = new PclZip('dumps/'.$filename_global.'.zip');
     
    // Ce qui suit est dans la boucle:
    // Traitements...
     
    $filename = 'nom_fichier';
    if (!$ZIP) {
       // Premier tour: on créé
       $action = $archive->create("dumps/".$filename.".sql", PCLZIP_OPT_REMOVE_PATH, "dumps");
       $ZIP = TRUE;
    }
    else
       // Deuxième tour et +, on ajoute
       $action = $archive->add("dumps/".$filename.".sql", PCLZIP_OPT_REMOVE_PATH, "dumps");
     
    if ($action == 0) {
       echo "Error : ".$archive->errorInfo(true); // Erreur? Bah oui
    }
     
    // Fin boucle
    Ca c'est au bout de 5 essais. J'ai l'erreur comme quoi il ne trouve pas le fichier temporaire du zip. Je ne comprends vraiment pas, il ne m'ajoute qu'un fichier dans le zip, et après il fait plus rien.
    D'où ça peut venir?
    Merci

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Après traçage des erreurs je sais qu'il n'arrive pas à lire un fichier temporaire.

    Le simple code suivant dans la boucle suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $action = $archive->add("dumps/".$filename.".sql", PCLZIP_OPT_REMOVE_PATH, "dumps");
    Pour le premier fichier, aucun problème il est ajouté. A partir du second, il ne trouve plus un fichier temporaire nécessaire.
    D'où ça peut venir, sachant qu'en local je n'ai pas ce problème?
    Est-ce que un serveur peut traiter différemment ces fichiers?
    Merci

  3. #3
    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
    Tu peux nous donner le message d'erreur exact que tu obtiens ?
    Est ce que tu as regardé dans la source si tu retrouve ce message d'erreur ?

    essaye aussi cette version spéciale où tu peux tracer ce qu'il se passe :
    http://www.phpconcept.net/download.p...-trace-2-5.zip

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Oui exact et je l'ai téléchargé pour voir mais ça ne résoud pas grand chose... Voila l'erreur:

    Unable to open temporary file 'pclzip-45b100e1e6bb1.tmp' in binary write mode [code -2]
    Je ne vais pas mettre tout le traçage...
    Merci

  5. #5
    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 manuel, les exemples de code utilisent soit "create" soit "add" mais pas les deux en même temps

    essaye de créer une chaine de caractère 'dumps/fichier1.sql,dumps/fichier2.sql,dumps/fichier3.sql' dans la boucle et ensuite fait un "create('dumps/fichier1.sql,dumps/fichier2...', ..."

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci de ton aide,

    Pour information, j'ai essayé la boucle avec seulement des add(), et avec des fichiers simples (existants, non dynamiques). Mais toujours pareil, la seconde fois il veut pas etre ajouté...

    Ca doit provenir du serveur je vois pas d'autre raison...
    Merci

  7. #7
    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
    tu ne dois pas utiliser plusieurs "add" mais un seul en lui passant en argument la liste des fichiers
    j'ai bien vu qu ça fonctionne en local avec plusieurs appel mais c'est peut-être un coïncidence, ce n'est pas prévu dans le manuel

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    OUuah trop cool j'y ai pas pensé 1 seconde
    Je teste et je te dis!
    Merci

  9. #9
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ah génial enfin...
    Merci beaucoup. J'avais lu le manuel utilisateur mais je ne l'ai pas vu mentionné... j'ai peu être mal lu.


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

Discussions similaires

  1. [Débutant] VBA Excel : problème avec la méthode Add
    Par epsilonzero dans le forum MATLAB
    Réponses: 3
    Dernier message: 20/04/2010, 11h02
  2. Erreur avec la méthode Sort
    Par phal2ip dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 20/10/2008, 09h21
  3. [DOM] Erreur avec la méthode setAttribute
    Par PierreBTSIG dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 19/05/2008, 13h45
  4. Message d'erreur avec la méthode UpdateBatch (ADO)
    Par GnarlyYoyo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/11/2007, 21h12
  5. Erreur avec la méthode OpenRecordset
    Par NPortmann dans le forum VBA Access
    Réponses: 4
    Dernier message: 05/05/2006, 17h13

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