J'ai un problème avec la lecture de fichier pdf dans Chrome en utilisant PHP.Chrome a "Impossible de charger le document PDF" message d'erreur sur les PDF en ligne
Le code suivant est comment je fais en PHP
$path = "actually file path";
header("Pragma: public");
header("Expires: 0");
header("Content-type: $content_type");
header('Cache-Control: private', FALSE);
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-Disposition: inline; filename=\"$filename\"");
header('Content-Transfer-Encoding: binary');
header('Content-Length' . filesize($path));
ob_clean();
flush();
readfile($path);
Ici, je mets le Content-Disposition inline. Parce que je veux afficher le fichier pdf si le navigateur de l'utilisateur dispose d'un plugin de visualisation de pdf intégré. Comme vous le savez peut-être, Chrome intègre un visualiseur PDF.
Le problème est que j'ai beaucoup de fichiers pdf sur le serveur. Seuls certains d'entre eux peuvent être consultés par Chrome. Je n'arrive pas à comprendre pourquoi les autres ne peuvent pas travailler de la même manière. J'ai vérifié la permission de chaque fichier. Cela ne ressemble pas au problème d'autorisation.
Est-ce que quelqu'un sait quel est le problème? Je vous remercie.
Modifier pour forcer un téléchargement (Content-disposition: attachment/Content-Type: application/octet-stream), télécharger/enregistrer le bon PDF et un mauvais pdf et comparer ce qui a été enregistré à ce qui est sur le serveur. –
@ Marc J'essaie ça. Les deux peuvent être téléchargés et ressemblent à la même chose. Je compare également cela avec le fichier dans le serveur. Ce sont les mêmes. Quand je reviens à Content-disposition: inline. Ça ne marche tout simplement pas. :(Je compare même l'en-tête de réponse, ils sont identiques – easycoder
Que se passe-t-il si vous essayez d'en voir un directement au lieu de passer par votre script? –