gpt4 book ai didi

php - 网页实现excel另存为的最佳方法

转载 作者:行者123 更新时间:2023-12-04 20:46:35 25 4
gpt4 key购买 nike

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

这是场景

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

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

技术

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

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

谢谢

最佳答案

主要有两种方法:

  • 在服务器上生成文件。当第一个用户点击下载链接或每次有人下载文件时,您可以先执行此操作。您可以通过提供一个下载链接来做到这一点,该链接由您的 Web 服务器或 Web 框架解释为文件的位置,例如

    http://example.org/uploads/file1.csv



    或者您为下载编写自定义操作/页面,例如:

    http://example.org/download.php?filename=file1.csv (how to make a download link in PHP)

  • 生成一个 HTTP 响应,客户端(浏览器)将其解释为下载。您不需要将额外的文件写入磁盘,但它对文件类型最有用,您可以在程序中轻松生成,例如CSV 文件等的行。以下是 CSV 文件的示例:http://code.stephenmorley.org/php/creating-downloadable-csv-files/

  • 无论如何,浏览器都知道,它处理文件下载而不是处理另一个网页是通过 HTTP header :
    // 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 脚本检查权限会更容易。

    关于php - 网页实现excel另存为的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961039/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com