gpt4 book ai didi

php - 如何在不直接访问文件的情况下在网站上提供可下载的发票?

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:20 25 4
gpt4 key购买 nike

如标题所示。我想让用户可以选择下载过去购买的发票。我不想存储这些文件,以便可以通过 http 轻松访问它们,例如http://www.site.com/inv/567.pdf

我想到了一种方法,但我认为这不是最好的解决方案。

因此,从本质上讲,我会在我的服务器上有一个公共(public)根目录之外的文件夹,并且在这个文件夹中,每个文件夹都有一个与客户帐户 ID(MySQL 行 ID)相关的唯一 ID。在这些文件夹中的每一个中,我都可以存储与每个客户相关的发票或(.pdf 文件)。

我可以为管理员在 CMS 中构建一个部分,用于处理将这些文件上传到各种用户帐户的问题。

对于客户来说,当他们点击任何特定发票的下载按钮时,服务器会将发票复制到公共(public)根目录中的一个临时目录,但在此过程中将其重命名为一些晦涩的哈希值。然后 header 被定向到此位置。

然后我可以运行一个 cron 作业来每隔 x 时间清除这个临时文件夹。

鉴于我以前从未真正尝试过完成这项任务,我认为最好征求与此相关的任何建议/反馈/建议或意见,因为我相信你们会有一些好的想法也要做这个。预先感谢您提供的任何帮助!

最佳答案

您必须在 Web 脚本页面中实现该过程,比如 download_invoice.php

  1. 提供指向 download_invoice.php 的链接。
  2. 传递给该页面的表单查询字符串参数。
    2.1.查询字符串可能类似于:?invoice_id=24&prod_id=63
  3. 为下载页面生成代码:
    3.1.读取查询参数。
    3.2.处理访问认证。
    3.3.失败时重定向到 403 页面。
    3.4.成功继续。
    3.5.为 PDF 文件生成内容以下载并存储到字节缓冲区。
    3.6.设置响应 header ,例如附件和内容类型。
    3.7.刷新对客户端的响应。

在客户端上,系统会提示用户存储文件,或者内容类型的关联应用程序会打开下载的文件。

另请参阅类似的帖子:
How to make PDF file downloadable in HTML link?

关于php - 如何在不直接访问文件的情况下在网站上提供可下载的发票?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153347/

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