javascript - 如何创建一个临时或有限时间内的下载链接?
黄舟
黄舟 2017-04-10 17:54:23
[JavaScript讨论组]

有一个需求是用户付费下载一个压缩包,付费后可下载数次或者无限次数。

那么问题就来了

  1. 如何不暴露该压缩包的路径让付费的人转发给其它人下载?

  2. 让下载链接有一个时间的限制?

我的想法是有一张表记录付费用户ID对应该压缩包ID,只能让该用户下载。
但有其他或更好的方法吗?
ps:PHP

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
天蓬老师

整理了一下思路,仅仅理论上参考,大致分析如下:
一个用户表,一个资源表,一个记录表。记录表记录用户是否付费下载次数,下载时间等信息。
以上信息你应该是清楚的,就是和你描述的大致差不多。主要问题应该就是对于下载资源路径的处理的问题,以及权限的处理


用户操作流程应该是:

资源列表 - 付费资源详情 - 创建付费资源记录 - 生成静态下载链接或者动态链接

不暴露资源链接

下载链接非常见的资源路径,应该是一个动态的路径,为了关联资源,我们需要附带一个记录ID

    // 非
    ……resname.zip
    // 是
    index.php?id=1&…

下载链接有时间限制

有时间限制肯定需要时间比对,下载前在控制器内比较当前时间与创建记录时间以及有效期的一个综合比较,过期即直接不允许继续后续下载

只能当前用户下载

下载链接的控制器内肯定需要判断用户是否登录,以及记录ID中的付费用户ID是否与当前登录ID一致,一致才允许下载,否则不允许下载

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号