• 技术文章 >后端开发 >php教程

    不用数据库的多用户文件自由上传投票系统(2)_PHP教程

    2016-07-21 16:02:53原创364

    这是本系统的download.php,主要负责下载和记数,其中文件格式均在注释中说明.



    //传入num为要下载的文件号,col=要下载的分栏
    //ip不超时下载次数加一

    //文件格式
    //0编号<1作者<2文件位置<3投票计数<4简介<5文件大小<6文件下载次数
    //ip文件格式 地址:项目:时间


    $uploadto="../uploadfile/".$col."//m.sbmmt.com/m/";//上传到的子目录
    $cgiroot="http://eccct.51.net/cgi-bin/"; //主机加当前目录

    $pathtemp=explode("//m.sbmmt.com/m/",$HTTP_ENV_VARS["PATH_INFO"]);
    $pathtemp[sizeof($pathtemp)-1]="";
    $cgiroot="http://".$HTTP_HOST.implode("//m.sbmmt.com/m/",$pathtemp);//主机加当前目录

    $ipfile=$uploadto.$col.".ipd";//下载用的ip文件
    $overtime=4;//超时时间小时

    $goback="



    系统将在3秒后返回....
    ";
    $recfile=$uploadto.$col.".lst";


    //取出ip文件
    $fp=@fopen($ipfile,"r") or die("对不起该投票不合法".$goback);
    $ipinfo=fread($fp,filesize($ipfile));
    fclose($fp);
    unlink($ipfile);
    $times=getdate();
    $abstime=$times["yday"].sprintf("%02d",$times["hours"]);
    //绝对时间




    //把超时的ip去掉
    $ip_times=explode("|",$ipinfo);
    $temp="";
    $ipinfo="";

    for($i=0;$i
    $ip=explode(":",$ip_times[$i]);
    if($ip[1]==""||$ip[0]==""||$ip[2]=="") continue;
    eval ('$temp='.$abstime.'-'.$ip[2].';');

    if($temp<$overtime&&$temp>=0){

    $ipinfo.=($ip_times[$i]."|");
    }
    }
    //echo $ipinfo;
    if(strstr($ipinfo,$REMOTE_ADDR.":".$num))
    {
    $fp=@fopen($ipfile,"w") or die("出现错误".$goback);
    fwrite($fp,$ipinfo);
    fclose($fp);
    $firstdown=0;//第一次下载
    }
    else{
    $firstdown=1;//不是第一次下载

    $ipinfo=$ipinfo.$REMOTE_ADDR.":".$num.":".$abstime."|";

    $fp=@fopen($ipfile,"w") or die("出现错误".$goback);
    fwrite($fp,$ipinfo);
    fclose($fp);
    }

    //ip判断结束







    for($i=0;$i<100 && !file_exists($recfile);$i++);
    if($i==99) die("系统出错00".$goback);


    $fp=@fopen($recfile,"r") or die("对不起不合法".$goback);
    $info=explode(">",fread($fp,filesize($recfile)));
    fclose($fp);
    copy($recfile,$recfile.".bak");
    unlink($recfile);







    for($i=0;$i
    $items=explode("<",$info[$i]);
    if(!trim($items[0])) continue;
    if(trim($items[0])==$num){//要下载的项目
    if($firstdown)
    $items[6]++;
    $filepath=$uploadto.$items[2];
    $info[$i]=implode("<",$items);
    break;
    }


    }

    //$writetofile=implode(">",$info);

    if(!$fp=fopen($recfile,"w")){
    copy($votefile.".bak",$votefile);
    die("出错02".$goback);
    }



    for($i=0;$i if(trim($info[$i])!="") fputs($fp,trim($info[$i].">"));
    }
    fclose($fp);


    echo "";
    echo "
    ";
    echo "";
    echo "
    ";
    echo "


    ";
    echo "
    您的浏览器会在三秒钟后自动下载
    ";
    echo "


    ";
    echo "
    或者点击此处下载
    ";
    echo "


    ";
    echo "
    ";

    //echo $HTTP_ENV_VARS["PATH_INFO"];
    //echo "";

    echo "";

    //header("Content-type: application/.rar");

    //header("Content-Disposition: attachment; filename=".$filepath);
    //Header("Location: ".$filepath);
    //header("Content-Description: PHP3 Generated Data



    ?>

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/316394.htmlTechArticle这是本系统的download.php,主要负责下载和记数,其中文件格式均在注释中说明. html ?php //传入num为要下载的文件号,col=要下载的分栏 //ip不超时...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:不用 数据库 多用户 文件 自由 上传 投票 系统 这是 本系统 download.php 主要 负责 下载和
    上一篇:计算2000年01月01日起到指定日的天数_PHP教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊php怎么让Swoole/Pool进程池实现Redis持久连接• 一文解析PHP元转分的错误示范(附代码实例)• PHP+Socket系列之实现websocket聊天室• 聊聊PHP escapeshellarg函数使用的中文问题• PHP+Socket系列之IO多路复用及实现web服务器
    1/1

    PHP中文网