PhpSpreadsheet 返回文件而不是保存它

标签 php phpspreadsheet

我已经生成了 xmlx 文件,我可以保存它并通过以下方式提供给用户:

$writer->save('hello world.xlsx');
header('Location: hello world.xlsx');

但是,该文件仍保留在硬盘驱动器上。我需要摆脱它,因为它是一个安全威胁。

我尝试取消链接文件
unlink('hello world.xlsx');

但这会过早地删除文件,因此用户无法访问它。
如果它可以与 unlink 一起工作,那么我需要确保文件将被删除(所以正确使用 die(); 等)

编辑:
这不仅仅是出于安全原因。提供程序不允许保存文件,因此这是唯一的方法。

最佳答案

使用 php://output

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="file.xls"');
$writer->save("php://output");

关于PhpSpreadsheet 返回文件而不是保存它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319493/

相关文章:

redis - 带有 redis 的 phpspreadsheet 增加了运行时间

php - 使用PHP POST方法发布到同一页面

php - Outlook 链接预览中断 "one time URL"

php - 从网站获取元数据的最快方法

php - 使用 phpSpreadsheet 将 Excel 转换为 pdf

PhpSpreadsheet 将单元格的背景颜色设置为白色

php - 当我构建(配置)phpspreadsheet的源代码时,由于找不到apxs并且未构建apache,因此出现错误

php - 人气,如何让新点击率高于旧点击率?

php - 为什么PHP中的一些变量是用大写字母写的?

php - 如何使用 PhpSpreadsheet 从表格单元格中检索日期?