|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2009 Messages : 34 ![]() |
Bonjour à tous
voulant générer un odt avec des données, je veux utiliser la bibliothèque odtphp en procédural pas de problème mais avec Zend c'est une autre histoire, Voila ou j'en suis : Code :
'###'#######mimetypeapplication/vnd.oasis.opendocument.textPK#########¦ë>################Configurations2/ la ou mon fichier original n'en comporte qu'une, comme si je n'avais pas le bon en tête... En procédural, je fais un lien vers une page qui contient juste Code :
Quelqu'un a une idée de mon problème ? |
||||
|
|
00
|
|
|
#2 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 2 ![]() |
Je pense que le problème vient du fait que tu envoies deux fois les en-têtes HTTP : une fois avec Zend, et une fois avec la méthode exportAsAttachedFile de l'objet odf.
Essaie d'envoyer toi même les en-têtes en précisant le nom du fichier à télécharger (en tête Content-Disposition) et d'afficher le contenu de ton objet odf en tant que chaine de caractères directement (en castant) : Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : juin 2011 Messages : 2 ![]() |
J'ai épluché le fichier odf.php, et je pense avoir trouvé ta solution. Il faut sauvegarder le contenu de ton fichier ODT dans un fichier temporaire en utilisant la méthode saveToDisk sans argument, et ensuite envoyer son contenu avec Zend. On peut récupérer le nom du fichier temporaire avec la méthode getTmpfile de l'objet odf. Voilà le code :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2009 Messages : 34 ![]() |
Réponse pour ceux qui galèrent comme moi
Le fichier odt doit commencer par les caractère "PK" (hexa="50.4B") or mon fichier généré commence par une séquence d' octets EF.BB.BF (parfois répetés 5 fois). Cette séquence "EF.BB.BF" est en fait la marque BOM qu'on ajoute au début des fichiers pour indiquer que c'est de l'UTF-8. Si tu ouvres le fichier résultat sous un éditeur hexa et que tu retires cette séquence, alors on peut l'ouvrir sous OpenOffice sans problème ... SOLUTION convertir les scripts en utf8 sans BOM (c'est possible dans notepad++) sauf qu'il faut aussi le faire pour la bibrairie Zend ... BONUS pour les linuxiens : find /chemin/vers/sources -type f -exec sed -i -e '1 s/\xEF\xBB\xBF//' {} \; -print la commande qui va tout faire tout seul ... et en moins de 1 minute ! Un grand merci à Geektof |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com