加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何创建(可配置的)临时下载链接数

发布时间:2020-12-13 15:56:05 所属栏目:PHP教程 来源:网络整理
导读:我正在创建一个只能工作10次的下载链接.所以我有2个选项. 下载文件并将其计数更新为数据库并删除文件 当数是10. 或者下载文件并重命名为filename-1, filename-2 ……. filename-10 ..最后在它到达时将其删除 文件名-10. 我猜第二个选项使用较少的资源来不调
我正在创建一个只能工作10次的下载链接.所以我有2个选项.

>下载文件并将其计数更新为数据库并删除文件
当数是10.
>或者下载文件并重命名为filename-1,
filename-2 ……. filename-10 ..最后在它到达时将其删除
文件名-10.

我猜第二个选项使用较少的资源来不调用database.Now什么是查找文件名的简单方法.例如:

我的所有文件名都是独一无二的,比如sadkjsah78876djhgsadj.jpg.所以当我更新计数时它会像

sadkjsah78876djhgsadj-1.jpg
(or)
sadkjsah78876djhgsadj-8.jpg

那么如何在目录中找到基于sadkjsah78876djhgsadj的文件名.我正在考虑循环.但是当我将下载限制设置为100时,我不认为这是最好的方法.

解决方法

最好的选择是使用带有mod_rewite的.htaccess来将对某个目录的调用重写为PHP文件.例如对/downloads/FILEHASH.jpg的任何调用都被重写为/download.php?file=FILEHASH

然后,download.php将检查FILEHASH是否匹配数据库中的一行以及dl计数是否在x下,如果是,它将增加dl计数,将响应代码设置为200,将内容类型设置为image / jpeg和激活图像数据(存储在文件系统中或从DB中的BLOB).

如果没有找到或者dl计数超过x,它会将响应代码设置为404(或者更合适的话,如果您愿意)并且不返回任何内容或者可能是有用的消息.根据文件的大小,您可能还应该从数据库中删除该行,并在此时取消文件与文件系统的链接.

如果你使用MVC框架,这种事情真的很简单.

如果您提供的不仅仅是图片,请确保在添加时获取上传的mime类型,将其保存在数据库中并在下载时将其作为内容类型提供.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读