我正在部署一个网站,用户可以从中购买 pdf。现在我正在寻找存储pdfs
的方法,以便只有在付款完成后才能下载。
我遇到了一种方法,可以将 pdf 存储到 Mysql
数据库中,并在满足要求的凭据时生成它的路径。
是否有任何其他方法可以做到这一点,并且到 pdf 文件的链接应该是动态的和加密的,以便无法预测到其他书籍的其他链接。
我使用的服务器端语言是 PHP
最佳答案
- 如 Dagon 所述,您需要将文件存储在网站根目录之外的某个位置。上传文件时使用 move_uploaded_file移动它。您可以随意命名文件(在操作系统限制内),并将真实名称保存在数据库中。
- 然后当用户已经为图书付款后,将用户已付款的图书添加到数据库中的一个表中。
- 向用户提供他已付费购买的所有书籍的列表,例如:/download/filename.pdf
- 如果您使用 Apache(或其他网络服务器的等效文件),请添加 mod_rewrite,其中/download/.* 被重定向到 download.php 或 Controller 。
- 在下载页面上,检查用户是否已登录并有权访问该文件。如果没有,请重定向到该书的购买页面。
- 如果下载正常设置header对于 http status您需要:内容长度、内容类型、日期、状态 (200),也许还有内容编码。
- 使用readfile将文件输出给最终用户。
关于php - 将 pdf 文件安全地存储在服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19065969/