php 上传文件 示例
1 <?php 2 header("content-type:text/html;charset=utf-8"); 3 error_reporting(E_ALL); 4 //session_start(); 5 /* include "database_new.php"; 6 7 $nmetable=isset($_POST['nmetable'])?$_POST['nmetable']:""; 8 $title=isset($_POST['title'])?$_POST['title']:""; 9 $content=isset($_POST['content'])?$_POST['content']:""; 10 $a2=$a['name']; 11 date_default_timezone_set('PRC'); 12 $time=date('Y-m-d H:i:s',time()); 13 $ist=$go->execSql("insert into $nmetable(src,name,content,time)values('$a2','$title','$content','$time')"); 14 */ 15 //print_r($a); 16 17 /* 18 19 Array 20 ( 21 [name] => cube.html 22 [type] => text/html 23 [tmp_name] => H:\wamp\tmp\phpD175.tmp 24 [error] => 0 25 [size] => 3289 26 ) 27 28 */ 29 30 /* 31 函数名:getMessage() 32 参数: $mes $flg 33 作用: 使正确的信息显示为绿色 ,错误信息显示为红色 34 时间: 2017-9-5 35 程序员: 36 */ 37 $a=$_FILES['imgfile']; 38 $message=""; 39 function getMessage($mes,$flg){ 40 global $message; 41 if($flg==true){ 42 $message.="<div style='color:green' >".$mes."</div>"; 43 }else{ 44 $message.="<div style='color:red' >".$mes."</div>"; 45 } 46 //return getMessage(); 47 } 48 //getMessage('上传成功了',false); 49 //echo $message; 50 51 52 53 54 55 56 57 58 //判断文件类型(获取文件后缀名) 59 60 function getFileType($fileName){ 61 $pos=strrpos($fileName,'.'); //查找字符串中最后一次‘.’的位置 62 return substr($fileName,$pos+1); //从中最后一次‘.’的位置的下一位,截取到最后一位 63 64 } 65 66 67 68 69 //echo getFileType('dfaf.af.a.f.f.f.a.f.dfafasf.asf'); //测试 70 //设置允许被上传的后缀名 71 $allFileType=array('jpg','png','gif','txt','html'); 72 73 74 75 //判断上传文件类型是否允许被上传 76 77 function ifFileType($fileName){ 78 global $allFileType; //引入全局变量$allFileType 79 80 $seion=getFileType($fileName); //将getFileType($fileName)方法做成变量 81 if(in_array($seion, $allFileType)){ //判断上传的文件类型是否在规定的数组中 82 getMessage("文件类型允许被上传",true); //文件允许上传时显示绿色的内容 83 return true; 84 }else{ 85 86 getMessage("文件类型不允许被上传",false);//文件不允许上传时显示红色的内容 87 88 return false; 89 } 90 91 } 92 93 //ifFileType("asd.af.a.txtd"); 94 //echo $message; 95 96 97 98 99 100 101 102 103 104 105 106 107 108 //设置上传文件的大小 109 110 function ifFileSize($fileSize){ 111 $fileSize=ceil($fileSize/1024/1024);// 将上传文件转化为兆 112 if($fileSize<=2){ 113 114 getMessage("文件大小允许被上传",true); 115 return true; 116 }else{ 117 118 getMessage("文件过大,请上传小于2M的文件",false); 119 return false; 120 121 } 122 123 } 124 //ifFileSize(10000000); 125 //echo $message; 126 127 128 129 130 131 132 133 134 135 136 137 138 //判断 文件上传目录是否存在 139 function ifExists($fileUrl){ 140 141 if(is_dir($fileUrl)){ //判断目录是否存在 142 143 getMessage("上传目录已存在,可以直接上传",true); 144 return true; 145 }else{ 146 if(mkdir($fileUrl)){ 147 getMessage("目录创建成功",true); 148 return true; 149 150 }else{ 151 getMessage("目录创建失败",false); 152 return false; 153 154 } 155 156 157 158 } 159 } 160 161 //ifExists('image'); 162 //echo $message; 163 //exit(); 164 165 166 167 168 169 170 171 172 173 174 175 // 176 $b='./image/'; 177 //$new_name=md5(date("Ymdhis")).".".pathinfo($a['name'],PATHINFO_EXTENSION); 178 // $path=$b.$new_name; 179 180 181 182 if(ifFileType($a['name']) && ifFileSize($a['size']) && ifExists($b) ){ 183 $res=move_uploaded_file($a['tmp_name'],$b.md5(date("Ymdhis")).'.'. getFileType($a['name'])); 184 185 if($res){ 186 187 echo "<script>location.href='../admin/design.php'</script>"; 188 }else{ 189 //echo "<div style='color:red' >".$a['name']."文件上传失败</div>"; 190 echo "<script>alert('图片上传失败');location.href='../admin/insert.php'</script>"; 191 } 192 }else{ 193 194 echo "<div style='color:red' >上传失败,请上传小于2M,文件类型为'jpg','png','gif','txt','html'的文件</div>"; 195 196 } 197 198 //-----------------------------------------------------------------------------link: design.php 199 200 201 202 ?>