使 PHPWord 模板生成的文档自动下载而不是保存在本地

Make PHPWord template-generated document auto-downloaded instead of saved locally

PHPWord 有一个很好的模板示例,但我检查了它的代码并将文件保存在本地(取自 ../Examples/Template.php):

$document = $PHPWord->loadTemplate('Template.docx');
...
$document->save('Solarsystem.docx');

与使用具有自动下载选项的 createWriter 方法相比:

$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
$objWriter->save('php://output');

模板可以自动下载吗? (参见 PHPWord/Template.php::save

我不希望将其保存在本地,以便在自动下载选项可用时删除创建垃圾回收的任务。

我已经使用 PHPWord 的示例 Sample_23_TemplateBlock.php 测试了这个解决方案并且它有效:

// Add HTTP headers to force user's browser save document
// instead of opening it like an HTML page
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=template.docx");

// $templateProcessor->saveAs('results/Sample_23_TemplateBlock.docx');
$templateProcessor->saveAs('php://output');