内部服务器错误读取文件

Internal Server Error readfile

我有一个打开 pdf 文件的查看脚本,如下所示:

<?php
$this->title = 'arbeitskalender';
//ini_set('display_errors',1);
header('Content-Type:application/pdf');
header('Content-Disposition', 'attachment; fileName=arbeitskalender.pdf');
readfile('./pdfs/arbeitskalender.pdf');
?>

在我的本地主机(wamp-server)上运行良好,文件打开没有任何错误,上传到我的网站空间(不是我自己的服务器,只有一个网站空间)我得到

internal server error

.

有什么问题吗?是否有可能获得信息更丰富的错误消息?因为不是我的服务器,所以无法查看服务器日志。

是的,很多:

  • 检查开发人员栏中的网络选项卡。最后,关闭脚本中的(以 // 开始 header 行)你的 headers 以查看错误消息(用于调试)
  • 检查您的框架的日志文件(如果您使用)
  • 检查您的应用程序是否可以写入日志条目
  • 启用并显示错误(参见 Showing all errors and warnings
  • 检查php是否可以读取文件(文件的权限和存在)
  • 检查您是否只在此页面上收到内部服务器错误

查看您的脚本:

  • 这是什么?我没有看到 class 定义
  • 可以php找到文件吗?

检查 ./pdfs/arbeitskalender.pdf 权限。我猜 apache 用户

无法阅读它

我检查了你所有的建议,我学到了更多,但无法解决问题。我找到了另一个不使用 readfile 的代码片段,到目前为止它工作正常。

<?php
require_once 'Zend/Pdf.php';

header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename=arbeitskalender.pdf');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ini_set('zlib.output_compression','0');
echo file_get_contents("./pdfs/arbeitskalender.pdf");

?>
<html>
<body>