很多站长朋友们都不太清楚php实现积分下载,今天小编就来给大家整理php实现积分下载,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 求PHP付费下载附件实现原理,下面有具体说明 2、 PHP网页显示附件需要扣除积分如何实现? 3、 php 自动分段下载文件 求PHP付费下载附件实现原理,下面有具体说明下载地址得是动态的,不然用户知道地址后就直接下载了
这个没什么必要的,
1 跟 2 都是为3 做条件限制的,
你都没有登录怎么可能下载呢,即使有登录,积分不够也不能下载,即时积分够,下载也要扣除积分,所以第3点没必要
实现原理
第一,当点击下载的时候,PHP可以判断用户是否登录,是登录了,我们就获取到用户的资料和一些积分值,
第二,登录了,我们可以判断用户积分是否足够下载这个附件的所需的积分,够,就下一步,下载
,不够积分提示即可。
总结:可以判断用户是否登录 -> 登录了 -> 判断用户积分是否足够下载这个附件的所需的积分 -> 足够 -> 给予下载。
PHP网页显示附件需要扣除积分如何实现?可以做一个按钮,点击事件提示用户下载附件需要扣除响应积分
用户点击同意后ajax操作请求后台接口先扣除用户积分,然后返回附件地址
就可以实现
php 自动分段下载文件function download($file_dir,$file_name)
//参数说明:
//file_dir:文件所在目录
//file_name:文件名
{
$file_dir = chop($file_dir);//去掉路径中多余的空格
//得出要下载的文件的路径
if($file_dir != '')
{
$file_path = $file_dir;
if(substr($file_dir,strlen($file_dir)-1,strlen($file_dir)) != '/')
$file_path .= '/';
$file_path .= $file_name;
}
else
$file_path = $file_name;
//判断要下载的文件是否存在
if(!file_exists($file_path))
{
echo '对不起,你要下载的文件不存在。';
return false;
}
$file_size = filesize($file_path);
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length: $file_size");
header("Content-Disposition: attachment; filename=".$file_name);
$fp = fopen($file_path,"r");
$buffer_size = 1024;
$cur_pos = 0;
while(!feof($fp)$file_size-$cur_pos>$buffer_size)
{
$buffer = fread($fp,$buffer_size);
echo $buffer;
$cur_pos += $buffer_size;
}
$buffer = fread($fp,$file_size-$cur_pos);
echo $buffer;
fclose($fp);
return true;
}
你试一下吧,我再网上找的,没试过,看起来应该没问题
不过,你在代码最上面加上不限制时间不就行了吗,何必分段下载这么麻烦
关于php实现积分下载的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php实现积分下载 php签到送积分的详细内容...