如何强制下载PHP中的.xlsx文件而不会损坏它?

问题描述 投票:0回答:1

现有的问题都没有帮助我。我正在尝试下载文件类型为.xlsx的excel文件。它在下载代码中运行得非常好,如下所示:

echo "<a href='" . $dateiname . "'>Datei herunterladen</a>";

但每当我尝试强制下载时,它都无法正常工作。我已经在stackoverflow上尝试了各种问题的各种标题,最后两个是

header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $dateiname . '"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Pragma: no-cache');
header('Content-Length: ' . filesize($dateiname));
$objWriter->save('php://output');

header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Transfer-Encoding: binary ");
header('Content-Disposition: attachment; filename='.basename($dateiname));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($dateiname));
$objWriter->save('php://output');

我在与创建文件的文件相同的文件中尝试过,但也在一个单独的文件中,但无论哪种方式,我总是得到错误:

Excel无法打开文件(文件名),因为文件格式或文件扩展名无效。验证文件是否未被破坏,以及文件扩展名是否与文件格式匹配。

我服务器上的文件本身似乎很好。

php excel phpexcel
1个回答
1
投票

我发现我是如何使用PHPExcel强制下载xlsfile的。

header("Content-Disposition: attachment; filename={$fileName}.{$fileFormat}");
header("Content-Type: application/vnd.ms-excel;");
header("Cache-Control: max-age=0");

$objWriter->save('php://output');

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.