我有一个以 PDF 格式生成的 BIRT 报告。然后将从网络浏览器中打开报告。但是,在 Adobe Reader 中打开文件时,我收到以下错误消息:
Adobe Reader 无法打开“test.pdf”,因为它不是受支持的文件类型或文件已损坏(例如,它作为电子邮件附件发送且未正确解码)。
当我从命令行(代码在 PHP 中)运行完全相同的代码(从 Schedule() 和 Search() 调用)时,我得到了相同的报告,但 Adobe Reader 能够打开它。这是我用来从浏览器读取文件的代码:
<?php
require "Search.php";
require "Schedule.php";
Schedule( $_POST['period'], mktime(23, 59, 59, $_POST['month'] + 1,
$_POST['day'] + 1, $_POST['year']) );
Search( $param1, $param2, $param3, $param4 );
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="test.pdf"');
readfile('/home/web/test.pdf');
?>
Schedule() 和 Search() 都已经过测试,它们应该不会引起任何问题。由于我还是 PHP 的新手,有什么我想念的东西我还不知道吗?非常感谢您对此问题的任何帮助。
-生锈的
更新:事实证明,我发现一个 cron 作业更新了一个被调用的文件。这将文件更新为无用,并且已被修复。