Nous essayons d'envoyer des pièces jointes téléchargées (servies à partir d'une base de données comme blob) via php avec Zend Framework à un client.En-têtes pour MSOffice 2007/97 Télécharger avec PHP
Ce code fonctionne correctement pour Excel97/Word97.
if ($this->getResponse()->canSendHeaders(false)) {
$response = $this->getResponse();
$response->setHeader('Pragma', 'public', true)
->setHeader('Expires', '0', true)
->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
->setHeader('Content-Type', 'application/force-download', true)
->setHeader('Content-Type', 'application/octet-stream', true)
->setHeader('Content-Type', 'application/download', true)
->setHeader('Content-Disposition', "attachment;filename=$filename", true)
->setHeader('Content-Transfer-Encoding', 'binary', true)
->setBody($data) // binary
->sendHeaders();
}
Mais ne fonctionne pas pour excel2007/word2007. Il signale "le fichier a une erreur" et essaie de le réparer.
Des suggestions?
Excel fou rapports encore un fichier endommagé (après ce message, il travaille) .. – opHASnoNAME
Vous êtes sûr que le fichier ne contient pas des caractères non valides ou qu'il n'est pas stocké corrompu dans la base de données? –
quand j'ai mis les données binaires dans un fichier cela fonctionne, nous avons maintenant découvert, que le téléchargement est un octet plus grand que le fichier .. – opHASnoNAME