Bonjour,

Je tente de créer à la volée un fichier zip et le faire télécharger par un utilisateur. Mais lorsque je tente d'ouvrir le fichier zip un message d'erreur m'indique un message d'erreur : "erreur fatale ! la signature de l'entête central n'a pu être trouvé. Peute tre que ce fichier n'est pas un zip ..."

J'ai tenté de réduire mon code à la création du fichier zip vide et j'ai la même erreur. J'ai essayé d'afficher la taille du zip mais la fonctione filesize échoue. Ce qui me confirme que la création du zip, même si eller envoie true n'est pas réussis.

Voici 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
24
 
 
ob_start(); //J'ai lu dans un com de php net qu'il fallait faire un ob_start et end pour avoir des zip fonctionnel
 
$title  = "test_zip";
$zip 	 = new ZipArchive;
$open = $zip->open($title.'.zip', ZipArchive::OVERWRITE);
 
if ($open === TRUE) {
   //code ajout de fichier - on entre bien dedans
}
 
$zip->close();
 
$len = filesize($title.'.zip'); //Ne renvoie pas la taille, la fonctione échoue
 
header('Content-Type: application/zip');
header("Content-disposition: attachment; filename=$title.zip");
header('Accept-Ranges: bytes');
header("Content-Length: ".$len);
 
ob_end_clean();
 
readfile($title.'.zip');
J'ai esssayé avec ou sans les ob_start et ob_end_clean
J'ai essayé avec CREATE plutot que OVERWRITE

De l'aide serai la bienvenue :-)

Merci