PHPWord on server corrupt document with mention of some parts are missing

264 Views Asked by At

I have installed PHPWord on my computer with Composer and Wamp64. using a template, on my computer the template is well modified, and the recording of the file is perfect. On the infomaniak server, I have a message that the file is corrupted and that there are some parts missing. I can't find the reason. here is my code. Please help me find the source of the problem

<?php 
$docModele = 'print/modele_cdd_as_2.docx';
require_once '../PhpWord/bootstrap.php';

use\PhpOffice\PhpWord\PhpWord;

// Creating the new document...
$PHPWord = new \PhpOffice\PhpWord\PhpWord();
header('Content-type: application/json; charset=UTF-8');

/* Note: any element you append to a document must reside inside of a Section. */

$document = $PHPWord->loadTemplate($docModele);

$document->setValue('date_debut', $date_debut);
$document->setValue('identite', $identite.' ');
$document->setValue('date_naissance', $date_naissance);
$document->setValue('lieu_naissance', $lieu_naissance);
$document->setValue('dpt_naissance', $dpt_naissance);
$document->setValue('adresse1', $adresse1);
$document->setValue('cp', $cp);
$document->setValue('ville', $ville);
$document->setValue('no_ss', $no_ss);
$document->setValue('jour_debut', $jour_debut);
$document->setValue('date_fin', $date_fin);
$document->setValue('remplace', $remplace);
$document->setValue('motif_txt', $motif_txt);
$document->setValue('essai', $essai);
$document->setValue('indice', $indice);
$document->setValue('valeur_point', $valeur_point);
$document->setValue('brut', $brut);
$document->setValue('majoration', $majoration);
$document->setValue('date_contrat', $date_contrat);


//XML Writer compatibility
\PhpOffice\PhpWord\Settings::setCompatibility(false);

//#####################################################
// Save File
//#####################################################
//#####################################################
ob_clean();

$filename = 'nom_du_fichier.docx';
header("Content-Disposition: attachment; filename=$filename");
$document->saveAs('php://output');
//#####################################################
//#####################################################
exit;

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($PHPWord, 'Word2007');

// création du fichier

$objWriter->save($filename);

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
ob_clean();
flush();
readfile($filename);
unlink($filename); // deletes the temporary file

?>

0

There are 0 best solutions below