以文本形式下载HTML页面的一部分(PHP)

时间:2009-05-28 17:55:33

标签: php

所以我有一个'导出'应用程序,它将用户带到带有大量文本的textarea的结束页面。现在工作流程是将文本从textarea复制并粘贴到文件中。

导出的代码越来越大,我们希望鼓励用户更频繁地执行此操作,因此不再需要复制/粘贴路由。 (更不用说我的xterm-> ssh-> screen-> vi链不能很好地粘贴250K字符)

问题是这样的:我有一个textarea,其中已导出代码,我想提供一个“将此代码下载到文件”的按钮

我很确定我必须再次点击服务器,但我只想查看我的所有基础。我可以想到这样做的方式(将生成的textarea值作为浏览器的文件发送)

  • 创建一个脚本,将所述文本作为POST接收,并使用正确的内容标题将其发回。这是不可取的,因为我们将张贴250k,这将比以下慢:

  • 创建一个脚本,用于重新生成文本区域,并提供一个按钮,用于访问脚本并下载文件的原始页面。 这是我倾向于

  • 的选项
  • 以某种方式使用Javascript并且可能可以一起跳过服务器并将$('。exported')。val()发送到具有正确标题的浏览器?不知道怎么做这个atm。

所以,如果有人有一些很好的建议,也许我会忽略一些东西。谢谢!

编辑:Download textarea contents as a file using only Javascript (no server-side)

这个问题说JS路线是不可能的(很可能)

4 个答案:

答案 0 :(得分:1)

我建议如下:让你的按钮用你的文字替换页面的整个DOM。之后,用户只需按 Ctrl + S 或⌘S即可。不完全是你想要的,但仍然是捷径。

我猜你可以使用以下(jQuery)来完成它:

$ (document.body).html ($ ('#textarea-id').html)

(未经测试)

答案 1 :(得分:1)

我会选择选项2.最简单,最快捷。其他人有点做作。

如果你选择选项2,为什么还要留下textarea?

答案 2 :(得分:0)

按照第二个选项,您可以使用关键字触发脚本,以将数据作为附件发送。

以下是它的外观示例:

if (isset($_GET['download'])) {
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment;filename="dump.data"');
    echo $data;
    exit;
} else {
    echo '<textarea>', htmlspecialchars($data), '</textarea>';
}

答案 3 :(得分:0)

选项:

  • 服务器中的文字:

    • 制作GETFILE.PHP,以响应文件中的文字。
  • 在客户端撰写文字

    • 将文本发布到GETFILE.PHP并回复文件。
    • 将文本发布到GETFILE.PHP,存储文件并提供LINKLOAD(然后根据需要删除或不删除文件)

以下是一些例子 http://www.osix.net/modules/article/?id=773