程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 不用數據庫的多用戶文件自由上傳投票系統(3)

不用數據庫的多用戶文件自由上傳投票系統(3)

編輯:關於PHP編程

這是本系統的第四個文件.upload.php主要負責,文件名的校驗
,上傳文件和文件地址的歸檔

<html>
<head><title>文件上傳</title>
<body><div style="width:750"><center>
<?php
//上傳的欄目$col,$upfile上傳的文件,$writer作者,$intro簡介


$writer=substr(htmlspecialchars($writer),0,20);
$intro=substr(htmlspecialchars($intro),0,100);

$maxsize=512000*2;//最大的文件長度
$pathtemp=explode("/",$HTTP_ENV_VARS["PATH_INFO"]);
$pathtemp[sizeof($pathtemp)-1]="";
$cgiroot="http://".$HTTP_HOST.implode("/",$pathtemp);//主機加當前目錄



//$cgiroot="http://eccct.51.net/cgi-bin/";
$uploadto="../uploadfile/".$col."/";//上傳到的子目錄

$goback="<br><br><br><br><center>系統將在3秒後返回....</center><script>setTimeout('location.href="view.php?col=".$col.""',3000)</script>";




set_time_limit(300);//可持續五分鐘











//if(!is_dir($uploadto)) mkdir($uploadto,0755);

if($upfile_size>$maxsize)
die("<h1><font color=red>對不起,您要上傳的文件太大了,超過了1MB</font></h1>".$goback);

$filename=$upfile_name;
$i=0;
while(file_exists($uploadto.$filename)){
$i++;

$filesp=explode('.',trim($upfile_name));
//echo $filesp[sizeof($filesp)-1];
//echo $filesp[sizeof($filesp)-1]!="zip";
//echo $filesp[sizeof($filesp)-1]!="rar";

if((trim($filesp[sizeof($filesp)-1])!="zip") && (trim($filesp[sizeof($filesp)-1])!="rar")){

die("<h1><font color=red>上傳文件的後綴名必須是zip或rar(小寫)</font></h1>".$goback);

}

$filename=$filesp[0].$i.".".$filesp[1];

}


if ($i>0)
echo ("<font color=red>對不起,您要上傳的文件名已經存在了,<br>系統自動將其更名為".$filename."</font>");

//檢查合理性結束

if(!copy($upfile,$uploadto.$filename)) die("<h1><font color=red>系統出現錯誤03,請將文件重傳<br></font></h1>".$goback);

//寫文件列表
$fileurl=$uploadto.$filename;//文件url
$flists=$uploadto.$col.".lst";//文件列表位置

for($i=0;$i<100 && !file_exists($flists);$i++);
if($i==99) {
unlink($uploadto.$filename);
die("系統出錯00".$goback);
}


copy($flists,$flists.".bak");
if(!$fp=fopen($flists,"r")){
unlink($uploadto.$filename);
die("出錯01".$goback);
}
$filerc=explode(">",fread($fp,filesize($flists)));//上傳的檔案資料
fclose($fp);

unlink($flists);

$firstrec=explode("<",$filerc[0]);

if(!$firstrec[0]) $id=1;
else $id=$firstrec[0]+1;

$oldinfo=implode(">",$filerc);

$newinfo=$id."<".$writer."<".$filename."<0<".$intro."<".$upfile_size."<0>".$oldinfo;
//編號<作者<文件位置<投票計數<簡介<文件大小<文件下載次數

if(!$fp=fopen($flists,"w")){
unlink($uploadto.$filename);
copy($flists.".bak",$flists);
die("出錯02".$goback);
}

fwrite($fp,trim($newinfo));

fclose($fp);


//寫文件列表結束


//文件傳送

echo "<h1>傳送成功</h1>";



echo "文件在<a href=".$fileurl.">".$cgiroot.$fileurl."</a>.$goback";
//文件傳送成功




?>
</center>
</div>
</body>
</html>

這是本文的最後一篇,主要介紹如何使用系統,讓我們用個事例來說明:

例如我們要做flash作品上傳投票,那我們只需要在../uploadfile/(相對系統php文件所在位置)子目錄下建一個flash子目錄,並在其中建立下列文件:flash.if(記錄顯示時出現的標題),flash.ip(投票ip記錄),flash.ipd(下載ip記錄),flash.lst(下載文件信息記錄).然後使用view.php?col=flash就可使用系統了,如果要新增欄目/用戶php作品上傳,只需在../uploadfile/下另建子目錄php,和相應文件,並使用view.php?col=php就可使用了 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved