J'ai un script PHP (exécutant PHP 5.2 sur Apache 2.2) qui crée une archive zip de fichiers qu'un utilisateur peut télécharger. Tout semble fonctionner très bien; le seul problème que j'ai est que périodiquement plusieurs fichiers seront créés avant que l'archive ZIP soit terminée avec succès. Exemple:PHP Zip Archive crée sporadiquement plusieurs fichiers
archive-name.zip
archive name.zip.a09600
archive name.zip.b09600
archive name.zip.c09600
Cela ne pas arrivé à chaque fois; seulement périodiquement - le fichier est toujours créé, mais parfois ces «fichiers» supplémentaires sont laissés sur le serveur après la fin. Le code qui crée l'archive ZIP est le suivant:
$zip_archive = new ZipArchive();
$zip_archive->open($archiveFullName,ZIPARCHIVE::CREATE);
if(!file_exists($archiveFullName)) {
foreach ($completed_file_arr as $zip_file) {
$isFiller = substr($zip_file,-8) == "_err.txt";
if(!$isFiller) {
$zip_archive->addFile($zip_file,$localname);
} else $zip_archive->addFromString ($zip_file, "The requested source file could not be found.");
}
}
while(!$zip_archive->close()) sleep(1); //ensure that the ZIP file finishes closing
Après la création de cette archive ZIP; la page est rechargée en utilisant javascript. La page vérifie si un fichier a été créé (et existe) et si c'est le cas, il sert au téléchargement. Ce qui semble se passer, c'est que le fichier ZIP est fermé avec succès avec $ zip_archive-> close() mais le fichier ne se termine pas. Ainsi, lorsque la page se recharge en recherchant archive-name.zip, la seule chose qui existe est archive-name.zip.a09600; donc il descend dans le segment de création ZIP du code jusqu'à ce qu'il le fasse correctement. Je ne sais pas ce qui pourrait être à l'origine de la fermeture de l'archive ZIP. – Dogoferis