我有一个打开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>