|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre expérimenté
![]() |
Salut à tous,
je souhaite créer un fichier zip, voici mon code: Code :
Citation:
Quelqu'un peut m'aider??? Merci d'avance
__________________
-- Ludovic |
|||
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Le problème peut être plus en amont, notamment au niveau de la méthode open où une égalité/différence en type et en valeur est nécessaire du fait qu'elle renvoie une valeur numérique décrivant l'erreur qui s'est produite (s'il y en a une - je rappelle qu'est considérée comme vraie toute valeur numérique différente de 0).
Code :
if ($zip->open($filename, ZIPARCHIVE::CREATE) !== TRUE) {
|
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() |
En fait, c'est une erreur sur mon post, mais sur mon code, c'est bien:
Code :
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE)
__________________
-- Ludovic |
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Apache possède les droits nécessaires pour écrire l'archive à l'endroit spécifié (le répertoire courant d'après votre code) ?
Vous avez quelle version de cette extension (cf phpinfo) ? Edit: je viens de tester sur une version 5.2.2 et ce code fonctionne mais l'"attribut" filename n'apparaît pas non plus. |
|
|
00
|
|
|
#5 | ||
|
Membre expérimenté
![]() |
C'est un problème de droits!!!
Merci beaucoup!! J'ai une autre question, comment faire un ZIP sans créer sur le disque un fichier: je m'explique, je souhaite que l'utilisateur aille sur ma page PHP et qu'une page "Save as" apparaisse afin qu'il enregistre son ZIP: J'ai déjà mis les hearders: Code :
Merci
__________________
-- Ludovic |
||
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Vous n'aurez pas accès à l'archive elle-même tant que vous n'aurez pas appeler la méthode close qui l'écrit sur le disque (c'est possible pour un fichier archivé en revanche). Ne pouvez-vous pas le supprimer à la fin du script via la fonction unlink et/ou avec une tâche planifiée/cron ?
|
|
|
00
|
|
|
#7 | ||
|
Membre expérimenté
![]() |
En fait, je pensais que je pouvais faire comme ce script:
Code :
mais en utilisant le même principe que précedemment.
__________________
-- Ludovic |
||
|
|
00
|
|
|
#8 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Il faut comparer ce qui est comparable : l'extension Zip offre bien plus de fonctionnalités que la classe fournie avec phpMyAdmin. L'extension Zip n'offre pas de moyen de gérer l'archive comme un flux et je pense que ceci est dû au fonctionnement de l'extension car elle attend l'appel à sa méthode close (normalement appelée automatiquement si vous ne le faites pas) pour synchroniser les modifications avec le fichier de sortie (je rappelle par ailleurs que vous pouvez annuler des modifications) : c'est plus cohérent (et facile à gérer). Ceci a été prévu pour les fichiers qu'elle contient (via sa méthode getStream ou le wrapper zip) mais pas pour l'archive elle-même.
Vous pouvez tout à fait utiliser cette classe de phpMyAdmin, qui sera bien plus portable. Tout dépend de l'étendue de vos besoins. |
|
|
00
|
|
|
#9 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
J'ai le même souci sur ma machine. Pour y remédier, j'ai dupliqué l'attribut filename dans une variable file_name (il me semble que fileName fonctionne aussi) que je remplis moi-même depuis le constructeur de ma classe.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com