【问题标题】:PHP + generate .html file for downloadPHP + 生成 .html 文件供下载
【发布时间】:2018-05-04 15:11:51
【问题描述】:

我不确定要在这里搜索什么,所以我将解释我正在尝试做什么。

我目前有一个表单(几个下拉菜单,输入字段..等)提交表单时,我目前正在生成一个打印“输出页面”,其中包含所有用户在初始表单状态下输入的数据..底部的“打印文档”按钮。

最终用户将在其中打印并写入任何自定义/特定 cmets..etc..

以上所有内容都按预期工作。

但是.. 方向发生了变化.. 而不是打印出来。 (以及手写任何自定义/独特的 cmets)..

...他们希望能够将输出/显示页面“下载”为 .html 文件

(所以我需要使所有资产在文件中..etc. 类似样式,并且可能基于 64 编码任何/所有图像..etc)

因为我以前从未这样做过.. 我什至不确定我在寻找什么?

这应该是一个单独的(物理的).html 文件吗? (如何在下载之前将提交的数据/值放入其中?)

应该只是一个巨大的“字符串”,我将帖子值拉入其中吗?

但是一旦完成..如何提示用户将其保存为可下载的 .html 文件?

【问题讨论】:

  • 两个选项,重构以将所有内容放入一个大字符串中,或​​者使用wkhtmltopdf之类的东西,请参见此处delboy1978uk.wordpress.com/2014/11/24/…
  • 也许你可以使用 PHP 的 header 函数来提供输出以供下载而无需创建文件
  • 谢谢...保存到 .pdf 不是一种选择..(除非它可以是可编辑的 pdf,您可以在其中输入数据到字段中?)@Daniel Faure 有没有这样的例子?
  • @whispers,我在答案中写下了。

标签: php html download output generate


【解决方案1】:

假设您让 $html_string 处理要下载的页面的内容。包含 CSS 引用会很有用。

<?php    
    $html_string.="<h1>This is your form</h1>";
    foreach ($_POST as $p=>$value) $html_string.="{$p} has {$value}";

    header('Content-Disposition: attachment; filename="readme.html"');
    // other header() calls you need
    die($html_string);    
?>

这应该可行。

【讨论】:

    【解决方案2】:

    你可以在“a”html标签中使用“download”属性:

    <a href="http://example.com/some.html" download>Download</a> 
    

    很遗憾,IE browser 不支持此功能。

    【讨论】:

    • 有兴趣知道。这里不是一个真正的选择,因为它没有得到广泛的支持,但仍然很高兴知道。 (甚至不确定它是如何工作的?)或者在“下载/保存”之前如何将动态值/数据传递给它?
    • 您可以在需要时生成 .html(ajax + php),并在需要时显示下载按钮(来自 ajax 的回调)。因此,您可以在用户填写表单时生成文件,在创建文件时显示下载按钮。
    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 2010-10-23
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    相关资源
    最近更新 更多