这是本系统的download.php,主要负责下载和记数,其中文件格式均在注释中说明.
<html>
<?php //传入num为要下载的文件号,col=要下载的分栏 //ip不超时下载次数加一
//文件格式 //0编号<1作者<2文件位置<3投票计数<4简介<5文件大小<6文件下载次数 //ip文件格式 地址:项目:时间
$uploadto="../uploadfile/".$col."/";//上传到的子目录 $cgiroot="http://eccct.51.net/cgi-bin/"; //主机加当前目录
$pathtemp=explode("/",$HTTP_ENV_VARS["PATH_INFO"]); $pathtemp[sizeof($pathtemp)-1]=""; $cgiroot="http://".$HTTP_HOST.implode("/",$pathtemp);//主机加当前目录
$ipfile=$uploadto.$col.".ipd";//下载用的ip文件 $overtime=4;//超时时间小时
$goback="<br><br><br><br><center>系统将在3秒后返回....</center><script>setTimeout('location.href="view.php?col=".$col.""',3000)</script>"; $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<sizeof($ip_times);$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<sizeof($info);$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<sizeof($info);$i++){ if(trim($info[$i])!="") fputs($fp,trim($info[$i].">")); } fclose($fp);
echo "<head><meta http-equiv='refresh' content='3;URL=".$filepath."'>"; echo "<link rel='stylesheet' href='../css/eccct.css'></head>"; echo "<body class=tb >"; echo "<div >"; echo "<br><br><br>"; echo "<div class='values'>您的浏览器会在三秒钟后自动下载</div>"; echo "<br><br><br>"; echo "<div class='values'>或者点击<a href='".$filepath."'>此处</a>下载</div>"; echo "<br><br><br>"; echo "</div>";
//echo $HTTP_ENV_VARS["PATH_INFO"]; //echo "<script>window.location.href='".$filepath."';window.close();</script>";
echo "</body>";
//header("Content-type: application/.rar");
//header("Content-Disposition: attachment; filename=".$filepath); //Header("Location: ".$filepath); //header("Content-Description: PHP3 Generated Data
?> </html>
|