這是本系統的第四個檔案.upload.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="
系統將在3秒後返回....";
set_time_limit(300);//可持續五分鐘
//if(!is_dir($uploadto)) mkdir($uploadto,0755);
if($upfile_size>$maxsize)
die("
對不起,您要上傳的檔案太大了,超過了1MB
".$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("
上傳檔案的尾碼名必須是zip或rar(小寫)
".$goback);
}
$filename=$filesp[0].$i.".".$filesp[1];
}
if ($i>0)
echo ("對不起,您要上傳的檔案名稱已經存在了,
系統自動將其更名為".$filename."");
//檢查合理性結束
if(!copy($upfile,$uploadto.$filename)) die("
系統出現錯誤03,請將檔案重傳
".$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 "
傳送成功
";
echo "檔案在".$cgiroot.$fileurl.".$goback";
//檔案傳送成功
?>
這是本文的最後一篇,主要介紹如何使用系統,讓我們用個案例來說明:
例如我們要做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就可使用了
以上就介紹了投票系統 不用資料庫的多使用者檔案自由上傳投票系統3,包括了投票系統方面的內容,希望對PHP教程有興趣的朋友有所協助。