我正在尝试使用PHPWord生成word文档。文档可以成功生成。但是我生成的word文档在服务器上保存时出现了问题。我如何使其可以立即下载?
样品名称:
$PHPWord = new PHPWord();
//Searching for values to replace
$document = $PHPWord->loadTemplate('doc/Temp1.docx');
$document->setValue('Name', $Name);
$document->setValue('No', $No);
$document->save('php://output'); //it auto save into my 'doc' directory.
字符串
我如何链接到标题下载它如下:
header("Content-Disposition: attachment; filename='php://output'"); //not sure how to link this filename to the php://output..
型
请指教。
8条答案
按热度按时间piok6c0g1#
php://output
是一个只写的流,它会写入你的屏幕(像echo
)。因此,
$document->save('php://output');
不会将文件保存到服务器上的任何位置,它只是回显它。看起来,
$document->save
不支持流 Package 器,所以它确实创建了一个名为"php://output"
的文件。尝试使用其他文件名(我建议使用临时文件,因为你只想回显它)。字符串
在
header
中,filename
字段是PHP告诉浏览器的文件名,它不一定是服务器上的文件名。它只是浏览器将其保存的名称。型
所以,把它们放在一起:
型
sgtfey8w2#
字符串
ufj5ltwl3#
这是我的工作:
字符串
gcxthw6b4#
现在版本为0.13.0 https://github.com/PHPOffice/PHPWord
字符串
enyaitl35#
Laravel的一个简单的解决方案,基于@user3214824的答案。
字符串
7d7tgy0s6#
抱歉,这是后来才出现的。我在试图解决同样的问题时偶然发现了这个问题。我能够在Laravel 5上使用下面的命令:
字符串
希望能帮到别人!!
1tuwyuhd7#
字符串
zd287kbt8#
我正在使用laravel
10.x
和PHPWord1.1
。在尝试了多种解决方案后,我使用了基于@barryvdh的medium article的laravelStreamedResponse
类来流式传输大型CSV,我修改了代码以使用PHPWord字符串
对于mimetype请参考What is a correct MIME type for .docx, .pptx, etc.?