【问题标题】:Downloading a .xls file php give error code 500下载 .xls 文件 php 给出错误代码 500
【发布时间】:2013-07-21 12:16:59
【问题描述】:

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

ProcessExcel.phpbasedir 中生成一个名为Rapport.xls 的.xls 文件。所以路径是basedir/Rapport.xsl

问题是当我在完成生成Rapport.xls后重定向到ProcessExcel.php时,我无法从服务器下载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 {主要} 在第 93 行的 C:basedir\Classes\PHPExcel\Shared\OLE\PPS\Root.php 中抛出

编辑 2: 尝试使用另一个脚本发送电子邮件时,我遇到了基本相同的错误。我认为这两个问题可能是相关的。

【问题讨论】:

  • 检查您的日志是否存在真正的错误,可能是权限问题
  • 这是一个权限问题,它说: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 } 在第 93 行的 C:\basedir\Classes\PHPExcel\Shared\OLE\PPS\Root.php 中抛出
  • @DevZer0 您能否发表您之前的评论作为答案?我会选择它。
  • 谢谢你,我照你说的做了

标签: php phpexcel xls


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多