Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 09/02/2012, 12h43   #1
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 314
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 314
Points : 440
Points : 440
Par défaut zipArchive erreur code 500

Bonjour à tous !

Je rencontre un soucis lorsque j'archive des fichiers avec zipArchive.
Je suis assez limité au niveau des manipulations serveurs à savoir que je ne peux pas voir les messages d'erreur notamment le détail du code 500 qui est retourné.

Je crée mon archive en scannant tous les fichiers de tous les dossiers d'un répertoire racine.
Je n'ai pas de soucis lorsqu'il y a une cinquantaine de fichiers mais des que ca commence à monter en nombre je n'arrive plus à gérer mes informations de retour. Pourtant l'archive et parfaitement créée et il ne manque pas un seul fichier dans le zip. Le hic c'est que ca me renvoie donc l'erreur 500 et je ne peux pas fournir le détail de l'archive. De plus l'archive est d'abord créée dans un répertoire temporaire (sur le serveur Apache) et ensuite doit être copiée sur un autre serveur. Malheureusement ca s'arrête avant.
Voici le code que j'utilise :
(pour info la version de php est 5.2.13)
Code :
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
	//Annee en cours pour création du répertoire si inexistant
	$annee = Date('Y') .'/';
 
	//Concatenation du chemin avec l'année (emplacement complet des archives de l'annee en cours)
	$dir = '//autreServeur/Archives/'.$annee;
	$archiveServeur = $dir.'archives.zip';
	//Vérification et création du repertoire de l'annee en cours si inexistant
	if(!is_dir($dir)){
		if(!mkdir($dir)){
			print "Erreur - Impossible de créer le répertoire de l'année en cours pour archivage.";
			exit;
		}
	}
 
	//Emplacement et nom de l'archive créée
	$archiveFile = '//serveurApache/Temp/archives.zip';
 
	//Instanciation de l'objet ZIP
	$ziph = new ZipArchive();
	$texte = "";
 
	//Vérification de l'existence de l'archive
	if(file_exists($archiveFile)){
		if(!unlink($archiveFile)){
			print "Erreur - Impossible de supprimer l'archive pour : <b>".$action."</b><br>";
			exit;
		}
	}
 
	// On cree l'archive dans le repertoire temporaire
	if($ziph->open($archiveFile, ZIPARCHIVE::OVERWRITE) !== TRUE){
		print "Erreur - Impossible de créer l'archive : $archiveFile";
		exit;
	} else {
 
		// On lui definit un commentaire avec la date du jour
		$ziph->setArchiveComment($action);
 
		// On précise dans un message que l'archive est créée
		print "Création de l'archive temporaire : <u>$archiveFile</u><br><br>";
	}
 
	// Emplacement des fichiers a archiver
	$repertoire = '//serveurApache/repertoire';
 
	$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir),RecursiveIteratorIterator::SELF_FIRST);
	$countFolder = 1;
	$countFile = 1;
	foreach($objects as $name => $object){
		$name = str_replace('\\','/',$name);
		if(is_dir($name)){
			$countFolder++;
		} else {
			if(!$ziph->addFile($name)){
				$erreur .= " fichier non archivé : $name <br>";
			} 
			$countFile++;
		}
	}
 
	// Une fois Tout ca fait on ferme l'archive
	$ziph->close();
 
	// Et on la copie sur le serveur
	print "Nombre de répertoires : $countFolder <br>Nombre de fichiers : $countFile <br>";
 
	if(!copy($archiveFile,$archiveServeur)){
		print "Erreur - Impossible de déplacer l'archive sur le serveur.<br>";
		exit;
	} else {
		print "Archive temporaire déplacée vers <u>$archiveServeur</u><br>";
 
		// On n'oublie pas de la supprimer du repertoire temporaire
		if(!unlink($archiveFile)){
			print " - Impossible de supprimer l'archive temporaire.<br>";
		}
	}
 
	print $texte;
Auriez vous une idée pour résoudre ce problème ?

Merci par avance !
Daniel_Gibot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2012, 16h02   #2
Membre éprouvé
 
Gibot Daniel
Inscription : janvier 2010
Messages : 314
Détails du profil
Informations personnelles :
Nom : Gibot Daniel
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : janvier 2010
Messages : 314
Points : 440
Points : 440
Bon bah... après avoir demandé au gestionnaire du serveur d'augmenter la taille mémoire utilisée par Apache ça a marché.
Daniel_Gibot 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 02h05.


 
 
 
 
Partenaires

Hébergement Web