下载.xls文件给PHP错误代码500
我有去"basedir/Controls/ProcessExcel.php"
下载.xls文件给PHP错误代码500
ProcessExcel.php
我的页面上的链接产生basedir
命名为Rapport.xls
.xls文件。所以路径是basedir/Rapport.xsl
。
问题是,当我重定向到ProcessExcel.php
后,它完成生成Rapport.xls
我不能让Rapport.xls
从服务器下载。
这里是ProcessExcel.php
if($cn->DBConnexion())
{
//Format stuff here, do stuff there...
//This is Validation on my SQLDATA, etc...
}
//Create the .xls file
$writer = new PHPExcel_Writer_Excel5($phpe);
//Save the .xls file
$writer->save("../Rapport.xls");
$fullPath = '../Rapport.xls';
if (file_exists($fullPath)) {
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header('Content-Disposition: attachment;filename="Rapport.xls"');
header("Content-Transfer-Encoding: binary ");
readfile($fullPath);
exit();
}
代码它给我的错误代码500:
网站在检索 http://CantPOSTRealURLSorry.com/basedir/Controls/ProcessExcel.php遇到一个错误。 它可能正在关闭或配置不正确。
编辑: 错误日志中说:
PHP致命错误:未捕获的异常 'PHPExcel_Writer_Exception' 有消息“无法打开../Rapport.xls。它可能正在使用或受保护。'在C:\ basedir \ Classes \ PHPExcel \ Shared \ OLE \ PPS \ Root.php中:93 堆栈跟踪: 0 C:\ inetpub \ wwwroot \ solutions_spb \ Classes \ PHPExcel \ Writer \ Excel5.php(226):PHPExcel_Shared_OLE_PPS_Root ('../ Rapport.xls') 1 C:\ inetpub \ wwwroot \ solutions_spb \ Controls \ ProcessExcel.php(224):PHPExcel_Writer_Excel5-> save主要} 扔在C:BASEDIR \类\ PHPExcel \共享\ OLE \ PPS \ Root.php上线93
编辑2: 我basicly尝试与另一脚本发送电子邮件时同样的错误。我认为这两个问题可能都有关系。
您可以随时检查你的日志为真正的错误,也许是权限问题
检查日志真正的错误,也许是权限问题 – DevZer0
这是一个权限问题,它说:PHP致命错误:未捕获的异常' PHPExcel_Writer_Exception'消息'无法打开../Rapport.xls。它可能正在使用或受保护。'在C:\ basedir \ Classes \ PHPExcel \ Shared \ OLE \ PPS \ Root.php中:93 堆栈跟踪: #0 C:\ inetpub \ wwwroot \ solutions_spb \ Classes \ PHPExcel \ Writer \ Excel5.php(226) PHPExcel_Shared_OLE_PPS_Root-> save('../ Rapport.xls') #1 C:\ inetpub \ wwwroot \ solutions_spb \ Controls \ ProcessExcel.php(224):PHPExcel_Writer_Excel5-> save('../ Rapport.xls') #2 {main} 抛出C:\ basedir \ Classes \ PHPExcel \ Shared \ OLE \ PPS \ Root.php 93行 – Sebastien
@ DevZer0请问您以前的评论作为回答?我会选择它。 – Sebastien