Я хотел бы вставить файл PDF на веб-страницу. Мне нужно динамически создавать PDF-файл, чтобы я мог сначала аутентифицировать пользователя, поэтому я использую XSendFile в Apache. Файл PHP, с которым я работаю, отлично работает, когда я посещаю браузер с файлом PDF, который сразу предлагается для загрузки. Вот код, я использую (любезно http://www.brighterlamp.com/2010/10/send-files-faster-better-with-php-mod_xsendfile/)Проблемы с вложением PDF-файла, отправленного с XSendFile на веб-странице
// Get a list of loaded Apache modules
$modules = apache_get_modules();
if (in_array('mod_xsendfile', $modules)) {
// Use XSendFile if possible
header ('X-Sendfile: ' . $pathToFile);
header ('Content-Type: ' . $documentMIME);
header ('Content-Disposition: attachment; filename="' . $actualFilename . '"');
exit;
} else {
// Otherwise, use the traditional PHP way..
header ('Content-Type: ' . $documentMIME);
header ('Content-Disposition: attachment; filename="' . $actualFilename . '"');
@ob_end_clean();
@ob_end_flush();
readfile($pathToFile);
exit;
}
До сих пор так хорошо. Теперь я хочу встроить этот PDF-файл в веб-страницу, используя тег объекта, например:
<object data="dynamicpdf.php" type="application/pdf">
<p>PDF embed failed</a></p>
</object>
Но это не удается. Если я переключу атрибут данных в статический PDF-файл, тогда он отлично работает.
Любые идеи, что происходит не так?
обменивая
Это зависит от браузера. Какова необходимость встраивания PDF-файла? Почему бы не использовать HTML. Веб не был создан для PDF. – mblaettermann
Однако для правильной установки PDF-файла удалите заголовок Content-Disposition. Это заставляет загружать. Я забыл упомянуть об этом. – mblaettermann