我遇到了问题,我生成了页面模板的预览并将HTML保存到template.php
文件中。只要文件template.php
包含它应包含的内容,那么当您单击按钮时,生成的文件为空 - 为什么?
我有两个文件 - generate.php(包含预览的生成和下一个表单中的按钮以生成下载)
Get.php - 下载文件的脚本
GENERATE.PHP
<?php
$template = ob_get_flush();
$fp = fopen('template.html', 'w');
fwrite($fp, $template);
fclose($fp);
file_put_contents('template.html', $template);
?>
<form method="post" action="get.php">
<div id="container">
<input type="submit" id="download" value="Download template"/>
</div>
</form>
GET.PHP
<?php
$download = file_get_contents('./template.html');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=template.html');
header('Content-length: '.strlen($download));
?>
答案 0 :(得分:1)
除了明显的“写入template.html”两次外,您还没有在 get.php 文件中发送$ download的内容。地方
echo $download;
作为get.php的最后一行。
答案 1 :(得分:0)
在html
代码之前写下您的php
代码,以便其工作
<form method="post" action="get.php">
<div id="container">
<input type="submit" id="download" value="Download template"/>
</div>
</form>
并在该代码之后添加您的file write
代码,因为
ob_get_flush()
如果没有激活缓冲,则返回输出缓冲区或FALSE。并且你的缓冲区为空,所以返回false