ホームページ  >  記事  >  バックエンド開発  >  データベース不要のマルチユーザーファイル自由アップロード投票システム(3)_PHPチュートリアル

データベース不要のマルチユーザーファイル自由アップロード投票システム(3)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:02:30778ブラウズ

这是本系统的第四个文件.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秒后返回....
<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("

对不起,您要上传的文件太大了,超过了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";
//文件传送成功




?>





この記事の最後の記事では、主にシステムの使用方法を説明します。フラッシュのアップロードは投票に機能します。その後、../uploadfile/ (システム PHP ファイルの場所を基準とした) サブディレクトリの下に flash サブディレクトリを作成し、その中に次のファイルを作成するだけです: flash.if (タイトル)レコードが表示されるときに表示されます)、flash.ip (投票 IP レコード)、flash.ipd (ダウンロード IP レコード)、flash.lst (ダウンロード ファイル情報レコード) 次に、view.php?col=flash を使用してシステムを使用します。新しい列/アップロード ユーザー php を追加したい場合は、../uploadfile/ の下に別のサブディレクトリ php と対応するファイルを作成し、view.php?col=php を使用するだけです。

http://www.bkjia.com/PHPjc/316481.html

tru​​ehttp://www.bkjia.com/PHPjc/316481.html技術記事これは、このシステムの 4 番目のファイルです。upload.php は、主にファイル名の検証、ファイルのアップロード、およびファイル アドレスのアーカイブを担当します。 html headtitle file Upload/title bodydiv style=width:750center ?p...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。