我有一份以PDF格式生成的BIRT报告。然后从Web浏览器打开报告。但是,在Adobe Reader中打开文件时,我收到以下错误消息:
Adobe Reader无法打开'test.pdf',因为它不是受支持的文件类型,或者因为文件已损坏(例如,它是作为电子邮件附件发送的,并且未正确解码)。
当我从命令行运行完全相同的代码(从Schedule()和Search()调用时(代码在PHP中),我得到相同的报告,但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新手,有什么我想念的东西,我还不知道吗?非常感谢任何有关此问题的帮助。
-rusty
更新:事实证明,我发现一个cron作业更新了一个被调用的文件。这更新了文件是无用的,并且已经修复。