电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

用PHP文件上傳的具體思路及實(shí)現(xiàn)

瀏覽:4日期:2024-02-05 15:59:23

文件上傳我們需要用到HTML里面表單的type=file類型,及其enctype屬性。這是我們大家必須要用的。當(dāng)然了PHP函數(shù)庫(kù)當(dāng)中的FILE函數(shù)庫(kù),字符串類型函數(shù)庫(kù),目錄函數(shù)庫(kù)及$_FILES[]的使用是我們必須要用到的。

也許每一個(gè)站點(diǎn)都可能會(huì)對(duì)上傳文件有許多的限制,這些限制會(huì)包括 文件類型,文件大小,擴(kuò)展名,以及上傳目錄的存在與否,上傳文件的存在與否,目錄的可寫性,可讀性,上傳文件的改名及怎樣把文件從緩存當(dāng)中復(fù)制到你所需要的目錄當(dāng)中。

當(dāng)然出錯(cuò)的預(yù)處理也是我們不容忽視的!如果再深一步的討論我們還可以對(duì)文件的操作起用事件日志的記錄。

下面我們通過一段程序來實(shí)現(xiàn)這些功能:首先是我們預(yù)設(shè)的變量值,它包括文件大小,文件擴(kuò)展名類型,MIMI類型,及是否刪除的開關(guān)變量

$MAX_SIZE = 2000000;$FILE_MIMES = array('image/jpeg','image/jpg','image/gif','image/png','application/msword');

$FILE_EXTS = array('.zip','.jpg','.png','.gif');

$DELETABLE = true

下一部就是設(shè)置瀏覽器訪問變量及目錄訪問變量:

$site_name = $_SERVER['HTTP_HOST'];$url_dir = http://.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);$url_this = http://.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

$upload_dir = files/;$upload_url = $url_dir./files/;$message =;

建立上傳目錄并相應(yīng)改變權(quán)限:

if (!is_dir(files)) { if (!mkdir($upload_dir))die (upload_files directory doesn't exist and creation failed); if (!chmod($upload_dir,0755))die (change permission to 755 failed.);}

用戶請(qǐng)求的處理:

if ($_REQUEST[del] && $DELETABLE) { $resource = fopen(log.txt,a); fwrite($resource,date(Ymd h:i:s).DELETE - $_SERVER[REMOTE_ADDR].$_REQUEST[del]n); fclose($resource);

 if (strpos($_REQUEST[del],/.)>0); //possible hacking else if (strpos($_REQUEST[del],files/) === false); //possible hacking else if (substr($_REQUEST[del],0,6)==files/) {unlink($_REQUEST[del]);print <script>window.location.href='http://www.hdgsjgj.cn/bcjs/$url_this?message=deleted successfully'</script>; }}else if ($_FILES['userfile']) { $resource = fopen(log.txt,a); fwrite($resource,date(Ymd h:i:s).UPLOAD - $_SERVER[REMOTE_ADDR] .$_FILES['userfile']['name'].  .$_FILES['userfile']['type'].n); fclose($resource);

 $file_type = $_FILES['userfile']['type'];  $file_name = $_FILES['userfile']['name']; $file_ext = strtolower(substr($file_name,strrpos($file_name,.)));

 //文件大小的檢查:

 if ( $_FILES['userfile']['size'] > $MAX_SIZE) $message = The file size is over 2MB.;//File Type/Extension Check else if (!in_array($file_type, $FILE_MIMES) && !in_array($file_ext, $FILE_EXTS) )$message = Sorry, $file_name($file_type) is not allowed to be uploaded.; else$message = do_upload($upload_dir, $upload_url);

 print <script>window.location.href='http://www.hdgsjgj.cn/bcjs/$url_this?message=$message'</script>;}else if (!$_FILES['userfile']);else $message = Invalid File Specified.;

列出我們上傳的文件:

$handle=opendir($upload_dir);$filelist = ;while ($file = readdir($handle)) { if(!is_dir($file) && !is_link($file)) {$filelist .= <a href='http://www.hdgsjgj.cn/bcjs/$upload_dir$file'>.$file.</a>; if ($DELETABLE)$filelist .= <a href='http://www.hdgsjgj.cn/bcjs/?del=$upload_dir$file'>x</a>;$filelist .= <sub><small><small><font color=grey> .date(d-m H:i, filemtime($upload_dir.$file)).</font></small></small></sub>;$filelist .=<br>; }}

function do_upload($upload_dir, $upload_url) {

 $temp_name = $_FILES['userfile']['tmp_name']; $file_name = $_FILES['userfile']['name'];  $file_name = str_replace(,,$file_name); $file_name = str_replace(',,$file_name); $file_path = $upload_dir.$file_name;

 //File Name Check if ( $file_name ==) { $message = Invalid File Name Specified;return $message; }

 $result = move_uploaded_file($temp_name, $file_path); if (!chmod($file_path,0777))$message = change permission to 777 failed.; else$message = ($result)?$file_name uploaded successfully. : Somthing is wrong with uploading a file.; return $message;}

?>

<center><font color=red><?=$_REQUEST[message]?></font><br><form name=upload id=upload ENCTYPE=multipart/form-data method=post>Upload File <input type=file id=userfile name=userfile><input type=submit name=upload value=Upload></form>

<br><b>My Files</b><hr width=70%><?=$filelist?><hr width=70%><small><sup>Developed By <a style=text-decoration:none href=http://tech.citypost.ca>CityPost.ca</a></sup></small></center>

標(biāo)簽: PHP
主站蜘蛛池模板: 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 金属波纹补偿器厂家_不锈钢膨胀节价格_非金属伸缩节定制-庆达补偿器 | ORP控制器_ORP电极价格-上优泰百科| 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | LOGO设计_品牌设计_VI设计 - 特创易 | 事迹材料_个人事迹名人励志故事 学生作文网_中小学生作文大全与写作指导 | 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 山东艾德实业有限公司 | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司| 警方提醒:赣州约炮论坛真的安全吗?2025年新手必看的网络交友防坑指南 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 隧道窑炉,隧道窑炉厂家-山东艾瑶国际贸易| 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 平面钻,法兰钻,三维钻-山东兴田阳光智能装备股份有限公司 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 |