Voici mon code où j'essaie d'envoyer un en-tête correct dépendant d'un type de document. J'ai trouvé les en-têtes pour pdf, doc et docx mais j'ai encore besoin de savoir l'en-tête correct pour les fichiers Excel et PowerPoint.
Toute aide appréciée.
$document = urldecode($_GET['document']);
$extension = end(explode('.', $document));
$mimeType = '';
switch ($extension) {
case 'pdf':
$mimeType = 'pdf';
break;
case 'doc':
$mimeType = 'msword';
break;
case 'docx':
$mimeType = 'msword';
break;
case 'xls':
$mimeType = '';
break;
case 'xlsx':
$mimeType = '';
break;
case 'ppt':
$mimeType = '';
break;
case 'pptx':
$mimeType = '';
break;
}
header('Content-type: application/' . $mimeType);
. xls
application/vnd.ms-Excel
. xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
. ppt
application/vnd.ms-PowerPoint
. pptx
application/vnd.openxmlformats-officedocument.presentationml.presentation
Et l'un de ceux que vous avez énumérés est faux:
. docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
Voir http://www.w3schools.com/media/media_mimeref.asp .
xls est application/vnd.ms-Excel
, ppt est application/vnd.ms-PowerPoint
.
Étant donné que la plupart des types demandés sont liés à Microsoft Office, ce lien contient tous les types de mime de bureau (la meilleure source ciblée que j'ai trouvée jusqu'à présent): http://filext.com/faq/office_mime_types.php