下载.xls文件php会给出错误代码500

时间:2013-07-22 16:47:30

标签: php phpexcel xls

我的页面上有一个链接到"basedir/Controls/ProcessExcel.php"

ProcessExcel.phpRapport.xls中生成名为basedir的.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-> save('../ Rapport.xls') 1 C:\ inetpub \ wwwroot \ solutions_spb \ Controls \ ProcessExcel.php(224):PHPExcel_Writer_Excel5-> save('../ Rapport.xls') 2 {主}   引用C:basedir \ Classes \ PHPExcel \ Shared \ OLE \ PPS \ Root.php第93行

编辑2: 尝试使用其他脚本发送电子邮件时,我遇到了同样的错误。我认为这两个问题可能都有关系。

1 个答案:

答案 0 :(得分:1)

您始终可以检查日志中是否存在真正的错误,可能是权限问题