最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php 文件上傳系統(tǒng)手記

 更新時(shí)間:2009年10月26日 17:18:55   作者:  
說(shuō)是手記,實(shí)際上整個(gè)程序已經(jīng)寫(xiě)完了,雖然有點(diǎn)難看,但還行..畢竟是自己動(dòng)手寫(xiě)得第一個(gè)程序...
整個(gè)系統(tǒng)只有帶碼全部用PHP,沒(méi)有JS,沒(méi)有正則...純純的PHP...其實(shí)別的我也不會(huì)呵呵...
下面是原表單的html帶碼...
上傳文件表單
復(fù)制代碼 代碼如下:

<form id="upload" action="uplpad.php" enctype="multipart/form-data" method="post">
<div id="upload">
Map Name: <br />
<input type="text" name="mapname" size="12" maxlength="20" />
<br />
File Path:<br />
<input type="file" name="map" size="12" contentEditable="false" />
<input type="hidden" name="MAX_FILE_SIZE" value="8000000">
<br />
<input type="submit" value="Upload" id="x" />
</div>
</form>

表單中enctype="multipart/form-data"的意思,是設(shè)置表單的MIME編碼。默認(rèn)情況,這個(gè)編碼格式是 application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數(shù)據(jù),進(jìn)行下面的操作.enctype="multipart/form-data"是上傳二進(jìn)制數(shù)據(jù); form里面的值以2進(jìn)制流的方式傳過(guò)去。
<input type="hidden" name="MAX_FILE_SIZE" value="8000000">這句好像是沒(méi)有用的...我原以為這個(gè)可以限制上傳文件大小呢,上傳文件大小只有在php.ini里或后面上傳的文件的腳本里設(shè)置了...我程序里是直接設(shè)置php.ini中upload_max_filesize=6M的.
下面是上傳程序
Code
復(fù)制代碼 代碼如下:

$uploaddir="./map/";
$typearr=array("rar","zip","w3m","w3x");
$findstr=array("/","\\"," ","<",">"); //對(duì)名稱(chēng)進(jìn)行過(guò)濾
$mapname=str_replace($findstr,'',($_POST['mapname']));
//取擴(kuò)展名
function upfiletype($filename){
$arr=explode('.',$filename);
$a=count($arr)-1;
return $arr[$a];
}
//字符串是不是純數(shù)字
function isNo($str){
$intarr=array('1','2','3','4','5','6','7','8','9','0','.');
$a=str_replace($intarr,'',$str);
return ($a=="")?1:0;
}
//////控制窗口大小///////
function html(){
echo <<<eof
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>文件上傳</title>
<head>
<script>
function ResetSize(){
self.resizeTo(300,300)
self.moveTo(300,200)
}
</script>
</head>
<body onload="ResetSize()">
eof;
}
if (isNo($mapname)){
html();
exit ('有輸入正確的地圖名稱(chēng)');
}
//判斷是否有文件上傳
if(!is_uploaded_file($_FILES['map']['tmp_name'])){
html();
exit("你沒(méi)有上傳文件或上傳文件大于6M");
}
//判斷是不是重復(fù)上傳
$clintfilename=str_replace($findstr,'',$_FILES['map']['name']);
if(isset($_COOKIE['upload'])){
foreach($_COOKIE['upload'] as $value){
if($value==$clintfilename){
html();
exit("請(qǐng)不要重復(fù)上傳");
}
}
}
$filetype=strtolower(upfiletype($_FILES['map']['name']));
if(!in_array($filetype,$typearr)){
html();
exit("請(qǐng)上傳正確的地圖文件,支持rar,zip,w3m,w3x");
}
//判斷server文件是否存在
$filename=$mapname.'.'.$filetype;
for($a=1;$fopen=@fopen(($uploaddir.$filename),"r");$a++){
$filename=$mapname."$a".'.'.$filetype;
fclose($fopen);
}
//傳輸文件開(kāi)始;
$filepath=$uploaddir.$filename;
if(move_uploaded_file($_FILES['map']['tmp_name'],$filepath)){
//設(shè)置一個(gè)cookie用來(lái)看有沒(méi)有重復(fù)上傳
setcookie("upload[]",$clintfilename,time()+60*12);
html();
echo "上傳成功";
$log=fopen("upload.log","a7");
$logtxt=date("Ymd")."|".date("H:i")."|".$_SERVER["REMOTE_ADDR"]."|".$filename."\r\n";
fwrite($log,$logtxt);
}
?>

由于是第一次寫(xiě)...很多地方有問(wèn)題,并且在寫(xiě)的時(shí)候是改了又改得....忘多多指教

相關(guān)文章

最新評(píng)論

大竹县| 耒阳市| 禹州市| 聂荣县| 文登市| 蒙自县| 田阳县| 清原| 永定县| 陕西省| 布尔津县| 富蕴县| 屯门区| 那曲县| 军事| 专栏| 浪卡子县| 疏附县| 遂溪县| 昌邑市| 莒南县| 连山| 纳雍县| 富民县| 石楼县| 迁西县| 巩留县| 洪雅县| 策勒县| 册亨县| 浮梁县| 名山县| 满城县| 建阳市| 冀州市| 通城县| 林周县| 威信县| 兴城市| 丹阳市| 绵阳市|