PHP Zip de la Création de la Classe ZipArchive Pas Trouvé d'Erreur
je suis en train de créer un zip de script basé sur ce que j'ai trouvé ici, mais il me semble être une erreur Fatale: de la Classe ZipArchive' ne trouve pas d'erreur sur la nouvelle ZipArchive(); fonction.
La recherche de cela, il semble que cela est généralement dû à la façon dont PHP est compilé. J'ai un compte d'hébergement partagé, donc je n'ai pas configuré tout ça...et je suppose que je ne peux pas faire de modifications à la construction. De sortir d'intérêt que j'ai pris un coup d'oeil dans mon phpinfo() et j'ai trouvé que certaines choses qui semblaient associés:
PHP Version 5.2.6
BZip2 Support Enabled <--maybe not so relevant
ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.1.4
Linked Version 1.1.4
Je ne suis pas entirly sûr que si rien de tout cela signifie que j'ai la capacité de créer des zips.
Pour plus d'info (même si je ne pense pas que c'est relivent) voici mon script si loin....ce n'est pas testée, vous l'esprit que je ne peux pas avoir transmis cette Classe ne trouve pas d'erreur.
$file = tempnam("tmp", "zip");
$zip = new ZipArchive();
$zip->open($file, ZipArchive::OVERWRITE);
//the string "file1" is the name we're assigning the file in the archive
$zip->addFile('show1.jpg', 'file1.jpg');
$zip->addFile('show2.jpg', 'file2.jpg');
$zip->addFile('show3.jpg', 'file3.jpg');
$zip->addFile('show4.jpg', 'file4.jpg');
$zip->addFile('show5.jpg', 'file5.jpg');
$zip->addFile('show6.jpg', 'file6.jpg');
//echo $zip->file(); //this sends the compressed archive to the output buffer instead of writing it to a file.
$zip->close();
header('Content-Type: application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="' . $file.'"');
readfile($file);
unlink($file);
Donc ma question(s) sont vraiment: des
- Suis-je en train de faire quelque chose dans mon script à l'origine de cette erreur?
- N'importe quel de ces trucs de mon phpinfo() signifie que je devrais être en mesure de créer des fichiers zip, ..si non, que dois-je être à la recherche pour qu'il me permettra de savoir si j'ai la capacité.
- Il ressemble à ceci ZLib est molle de la bibliothèque, mais j'ai aucune idée de si il fait ce que je veux faire, ou même comment l'utiliser....c'est un peu une intuition, mais si il peut m'aider à créer des fichiers zip quelqu'un peut me pointer dans la bonne direction de comment l'utiliser?
Merci à l'avance.
Dan
OriginalL'auteur Dan Twining | 2011-03-12
Vous devez vous connecter pour publier un commentaire.
ZipArchive est apparemment pas compilée avec PHP par défaut. Vous devez recompiler avec le ' - avec-zip=' option ou tout simplement l'installer via PECL.
Ici est la page de manuel expliquant les différentes méthodes:
http://www.php.net/manual/en/zip.installation.php
Si votre fournisseur d'hébergement ne vais pas refaire votre PHP construire avec zip, puis le PCLZip bibliothèque peut être une alternative
Baker Merci Marc, j'ai été regarder dans PCLZip ce matin et ça fonctionne parfaitement!
OriginalL'auteur vicTROLLA
Alors que zlib est une importante bibliothèque de compression, il semble que vous êtes absent l'extension zip lui-même. On dirait que vous avez obtenu vos informations de
phpinfo
- look pour les mots exacts "extension zip." Si vous ne les trouvez pas, vous ne l'avez pas installé, et ne peut donc pas utiliser les fonctions et les méthodes fournies par elle.OriginalL'auteur Charles
Vous pouvez essayer de
dl("zip.so");
qu'en dernier recours. Mais cette extension est rarement intégré comme module externe. Vous pourriez être en mesure de trouver téléchargeable quelque part, ou même de le compiler à la main à partir de PHP sources ou http://pecl.php.net/package/zip à l'aide depecl build
Sinon vous aurez à chercher une alternative. http://pear.php.net/package/Archive_Zip vient à l'esprit.
OriginalL'auteur mario
Si vous avez mise à niveau de version de php ou extension zip n'est pas là
Donc, vous devez l'installer .
1) Ouvrir un terminal
2) sudo apt-get install php7.0-zip
3) sudo service apache2 restart
OriginalL'auteur Abhinav bhardwaj