内部服务器错误读取文件


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),它工作得很好,文件打开没有任何错误,上传到我的网络空间(不是我自己的服务器,只有一个网络空间),我得到

内部服务器错误

.

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

是的,很多:

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

看你的脚本:

  • 是多少美元呢?我没有看到类定义
  • 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>