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

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

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

瀏覽:5日期: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
主站蜘蛛池模板: 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 标准品网_标准品信息网_【中检计量】 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 一航网络-软件测评官网| 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 飞飞影视_热门电影在线观看_影视大全 | 合肥白癜风医院_合肥治疗白癜风医院_合肥看白癜风医院哪家好_合肥华研白癜风医院 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 伺服电机维修、驱动器维修「安川|三菱|松下」伺服维修公司-深圳华创益 | 深圳市东信高科自动化设备有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 压力喷雾干燥机,喷雾干燥设备,柱塞隔膜泵-无锡市闻华干燥设备有限公司 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 扬州汇丰仪表有限公司| 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 罗氏牛血清白蛋白,罗氏己糖激酶-上海嵘崴达实业有限公司 | 整合营销推广|营销网络推广公司|石家庄网站优化推广公司|智营销 好物生环保网、环保论坛 - 环保人的学习交流平台 |