Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2007, 21h41   #1
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
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 :
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
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 21h36   #2
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
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 :
$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
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2007, 09h02   #3
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2007, 18h50   #4
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Oui exact et je l'ai téléchargé pour voir mais ça ne résoud pas grand chose... Voila l'erreur:

Citation:
Unable to open temporary file 'pclzip-45b100e1e6bb1.tmp' in binary write mode [code -2]
Je ne vais pas mettre tout le traçage...
Merci
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2007, 21h34   #5
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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...', ..."
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2007, 23h43   #6
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
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
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2007, 10h43   #7
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2007, 16h27   #8
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
OUuah trop cool j'y ai pas pensé 1 seconde
Je teste et je te dis!
Merci
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2007, 16h42   #9
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
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.

Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h07.


 
 
 
 
Partenaires

Hébergement Web