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

您的位置:首頁技術文章
文章詳情頁

用PHP文件上傳的具體思路及實現

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

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

也許每一個站點都可能會對上傳文件有許多的限制,這些限制會包括 文件類型,文件大小,擴展名,以及上傳目錄的存在與否,上傳文件的存在與否,目錄的可寫性,可讀性,上傳文件的改名及怎樣把文件從緩存當中復制到你所需要的目錄當中。

當然出錯的預處理也是我們不容忽視的!如果再深一步的討論我們還可以對文件的操作起用事件日志的記錄。

下面我們通過一段程序來實現這些功能:首先是我們預設的變量值,它包括文件大小,文件擴展名類型,MIMI類型,及是否刪除的開關變量

$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

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

$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 =;

建立上傳目錄并相應改變權限:

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.);}

用戶請求的處理:

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>

標簽: PHP
主站蜘蛛池模板: 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 100国际学校招生 - 专业国际学校择校升学规划 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 冷藏车-东风吸污车-纯电动环卫车-污水净化车-应急特勤保障车-程力专汽厂家-程力专用汽车股份有限公司销售二十一分公司 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | X光检测仪_食品金属异物检测机_X射线检测设备_微现检测 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 氧化铝球_高铝球_氧化铝研磨球-淄博誉洁陶瓷新材料有限公司 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 天坛家具官网| bng防爆挠性连接管-定做金属防爆挠性管-依客思防爆科技 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 浙江浩盛阀门有限公司| 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 |