【发布时间】:2023-01-26 07:42:28
【问题描述】:
我想下载一个 projet 文件,但我得到它是空的。我正在使用电子表格库 注意:我在保存功能后进行转储,我的文件已满而不是项目路径目录中的空文件 有人可以帮助我!
波纹管是我的代码:
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('template.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
$filename = 'write.xls';
$worksheet->getCell('A1')->setValue('John');
$worksheet->getCell('A2')->setValue('Smith');
$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xls');
$writer->save($filename); die;
// to download file
header('Content-Type: application/vnd.ms-excel');
header("Content-Length:".filesize($filename));
header("Content-Disposition: attachment;filename=$filename");
header('Cache-Control: max-age=0');
$writer->save('php://output');
exit();
下载后我除了一个完整的文件
【问题讨论】:
-
您的问题很可能在这里:
header("Content-Length:".filesize($filename));由于您在下载结果时没有写入文件,因此您很可能将文件大小指定为零 (0)。这就是你得到的。 -
当我删除 die 时,我得到了一个空文件。我的大小文件转储与 0 不同!
-
所以你保存到文件和到输出流?可能是库只允许一个输出。尝试删除保存到文件。或者,如果您需要服务器端的文件,请使用
readfile命令发送文件。
标签: php laravel-8 phpspreadsheet