用PHP提供文件下载-停止多次点击


Serving files for download with PHP - Stop multiple clicks

我有一个"download.php"脚本,提供文件下载,用户可以选择下载自定义的ZIP文件。所以需要动态生成。

我遇到的问题是,如果用户快速连续单击ZIP文件5次,则在服务器上生成5次ZIP文件。

我需要一个方法,只产生这个在第一次点击,而不是保持生成一遍又一遍。

我做不是想要永久"禁用"链接,因为如果用户想要,几分钟后再次下载文件是可以的,我只是想尝试阻止恶意用户敲打下载脚本以不断使用服务器处理能力生成zip。

任何想法?我已经试了好几个小时了,似乎还没有找到一个有效的解决方案:/

谢谢

是否包含验证码或类似的选项来激活下载?这将阻止快速点击

添加jQuery到首页,在第一次点击后禁用按钮。比如:

$("#button").click(fuction(e) {
    $(this).attr("disabled", "");
});

另外,您可以缓存zip文件一段时间,以便在30分钟块或某个时间段内只处理一次。