Odt fichier corrompu et extrafields

Bonjour,

PHP8
Dolibarr 21.01

J’ouvre le fichier d’origine template_invoice.odt ne local avec LibreOffice pas de souci il l’ouvre sans erreur.

Sur le Dolibarr héberger j’ouvre n’importe qu’elle .odt j’ai systématiquement un fichier corrompu

J’envoi dans l’admin le template_invoice.odt local qui marche, je génère le document, télécharge le fichier et lors de l’ouverture fichier corrompu

Je crée un fichier .odt avec le minimum :

[!-- BEGIN supplierprices --][!-- END supplierprices --]
object_date_creation = {object_date_creation}

Même punition :anxious_face_with_sweat:

PHP7
Dolibarr 21.01
Même punition :anxious_face_with_sweat:

PHP7
Dolibarr 16.0.3
Même punition :anxious_face_with_sweat:

PHP8
Dolibarr 16.0.3
Même punition :anxious_face_with_sweat:

Cerise sur le gâteau si je clique sur Oui le fichier s’ouvre certaine variable sont bien remplacées, mais pas les extrafields :anxious_face_with_sweat:

Je tourne en rond merci pour vos lumières

Comme a chaque fois que je publie sur le forum je commence a trouver une solution :upside_down_face:

J’ai unzipe l’odt liste des repertoires/fichiers :
Répertoire:
Configurations2
META-INF
Thumbnails

Fichier :
content.xml
manifest.rdf
meta.xml
mimetype
settings.xml
styles.xml

je supprime Configurations2 je zip j’ouvre ça marche :smiley:

grep -R « Configurations2 » ./

ne retourne que les .odt: binary file

Après l’upload du fichier
unzip -l test_product.odt | grep Configurations2
0 2025-06-15 11:52 Configurations2/toolpanel/
0 2025-06-15 11:52 Configurations2/toolbar/
0 2025-06-15 11:52 Configurations2/statusbar/
0 2025-06-15 11:52 Configurations2/floater/
0 2025-06-15 11:52 Configurations2/images/Bitmaps/
0 2025-06-15 11:52 Configurations2/progressbar/
0 2025-06-15 11:52 Configurations2/popupmenu/
0 2025-06-15 11:52 Configurations2/menubar/
0 2025-06-15 11:52 Configurations2/accelerator/

A des fins de test j’ai modifier document.php l’odt et propre sans Configuration2 mais toujours le meme problème a l’ouverture du fichier avec LibreOffice fichier corrompu :anxious_face_with_sweat:

/*// Send file now
if ($readfile) {
        header('Content-Length: '.dol_filesize($fullpath_original_file));

        readfileLowMemory($fullpath_original_file_osencoded);
}*/
// Send file now
if ($readfile) {
        // Si c'est un fichier .odt, on supprime le répertoire Configurations2/ à la volée
        if (preg_match('/\.odt$/i', $fullpath_original_file_osencoded) && is_file($fullpath_original_file_osencoded)) {
                require_once DOL_DOCUMENT_ROOT.'/includes/odtphp/zip/pclzip/pclzip.lib.php';

                $zip = new PclZip($fullpath_original_file_osencoded);
                $zip->delete(PCLZIP_OPT_BY_PREG, '/^Configurations2\//');
        }

        header('Content-Length: '.dol_filesize($fullpath_original_file));
        readfileLowMemory($fullpath_original_file_osencoded);
}