2

什么被认为是允许用户通过单击“另存为”来保存表数据的最佳编码方式

这是场景

我创建了一个网页,列出了来自 mysql db 的数据(在 php 中创建的应用程序)。

该页面列出了数据并提供了“另存为”按钮,因此可以将数据保存到用户本地计算机(csv、xml 等)。

技术的

以下是执行此操作的最佳方法1)将数据保存到查询该mysql db的同一php程序中的文件中吗?2)当用户点击网页上的“另存为”时,ajax将数据从#1(服务器)流式传输到用户本地计算机

我已经阅读了一些关于如何创建 xml 数据(opendocument、openxml)和 php excel/xml 库的内容,但只是不完全理解流程;是否应该在查询时创建文件,数据如何到达用户本地计算机等。或者是否有不同的方法来做到这一点?

谢谢

4

1 回答 1

1

主要有两种方法:

无论如何,浏览器都知道,它处理文件下载而不是处理另一个网页是通过 HTTP 标头:

// specify the MIME-type 
// (e.g. if it's an image or PDF most browser can display the content directly)
header('Content-Type: text/csv; charset=utf-8');

// The Content-Disposition response-header field has been proposed 
// as a means for the origin server to suggest a default filename 
// if the user requests that the content is saved to a file.
header('Content-Disposition: attachment; filename=data.csv');

您可以在此处阅读更多相关信息:http: //www.w3.org/Protocols/rfc2616/rfc2616-sec19.html

最后,这完全取决于您和您的要求。它是一个低流量站点并且文件很小吗?- 预先生成文件,让网络服务器处理下载链接。它是一个有很多小文件的高流量网站吗?- 可能会即时生成它(如在 CSV 示例中)。不是每个人都应该能够下载每个文件并且身份验证由您的 php 项目管理?- 使用自定义 download.php 脚本检查权限会更容易。

于 2012-12-19T21:07:52.823 回答