php文件上传代码解析
php文件上传代码解析
is_uploaded_file() //函数判断指定的文件是否是通过 HTTP POST 上传的,返回一个布尔值。
$_FILES['upfile']['tmp_name'] //储存的临时文件名,一般是系统默认。
is_uploaded_file($_FILES['upfile']['tmp_name']) //判断上传是否成功。
$upfile=$_FILES["upfile"] //传输表单的name。
$tmp_name=$upfile["tmp_name"] // 上传文件的临时存放路径.
rename(); //重命名。
copy(); //复制。
upload_move_file(); //移动。
$type=$upfile["type"] //上传文件的类型。
$size=$upfile["size"] //上传文件的大小。
$date=date('Ymdhis'); //得到当前时间,如;20070705163148.
move_uploaded_file($tmp_name,'uploads/'.iconv("UTF-8", "gbk",$name)); //对文件名进行强制转码iconv("UTF-8", "gbk",$name),将UTF8转换成gbk,这样就不会出现乱码了
unlink ("001.png"); //php删除本地文件代码 注!中文字符可能会导致乱码,需要对其进行 字符转换 iconv("UTF-8","gbk",$值)
move_uploaded_file($tmp_name,'uploads/'.$name); //把上传的临时文件移动到uploads目录下面
$error=$upfile["error"]
/**
* 0:文件上传成功<br/>
* 1:超过了文件大小,在php.ini文件中设置<br/>
* 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/>
* 3:文件只有部分被上传<br/>
* 4:没有文件被上传<br/>
* 5:上传文件大小为0
*/
//判断上传格式
switch ($type){
case 'image/pjpeg':$okType=true;
break;
case 'image/jpeg':$okType=true;
break;
case 'image/gif':$okType=true;
break;
case 'image/png':$okType=true;
break;
default:$okType=false;
break;
}
*************************
上传注意事项
1、为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下。
2、为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。
3、为防止一个目录下面出现太多文件,要使用hash算法打散存储。
4、要限制上传文件的最大值。
5、要限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。
*****************************
代码简单示例
<html>
<head>
<meta charset="utf-8">
<title>(runoob.com)</title>
</head>
<body>
<form action="?add=add" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
<?php
if(add==$_GET['add']){
if ($_FILES["file"]["error"] > 0)
{
echo "错误:" . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
}
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp); // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "错误:: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
// 判断当期目录下的 uploads 目录是否存在该文件
// 如果没有 uploads 目录,你需要创建它,upload 目录权限为 777
if (file_exists("uploads/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " 文件已经存在。 ";
}
else
{
// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "文件存储在: " . "uploads/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "非法的文件格式";
}
}
?>
1 其中对文件类型及其值,列表如下 2 文件后缀名 文件类型 3 3gp video/3gpp 4 aab application/x-authoware-bin 5 aam application/x-authoware-map 6 aas application/x-authoware-seg 7 ai application/postscript 8 aif audio/x-aiff 9 aifc audio/x-aiff 10 aiff audio/x-aiff 11 als audio/X-Alpha5 12 amc application/x-mpeg 13 ani application/octet-stream 14 asc text/plain 15 asd application/astound 16 asf video/x-ms-asf 17 asn application/astound 18 asp application/x-asap 19 asx video/x-ms-asf 20 au audio/basic 21 avb application/octet-stream 22 avi video/x-msvideo 23 awb audio/amr-wb 24 bcpio application/x-bcpio 25 bin application/octet-stream 26 bld application/bld 27 bld2 application/bld2 28 bmp application/x-MS-bmp 29 bpk application/octet-stream 30 bz2 application/x-bzip2 31 cal image/x-cals 32 ccn application/x-cnc 33 cco application/x-cocoa 34 cdf application/x-netcdf 35 cgi magnus-internal/cgi 36 chat application/x-chat 37 class application/octet-stream 38 clp application/x-msclip 39 cmx application/x-cmx 40 co application/x-cult3d-object 41 cod image/cis-cod 42 cpio application/x-cpio 43 cpt application/mac-compactpro 44 crd application/x-mscardfile 45 csh application/x-csh 46 csm chemical/x-csml 47 csml chemical/x-csml 48 css text/css 49 cur application/octet-stream 50 dcm x-lml/x-evm 51 dcr application/x-director 52 dcx image/x-dcx 53 dhtml text/html 54 dir application/x-director 55 dll application/octet-stream 56 dmg application/octet-stream 57 dms application/octet-stream 58 doc application/msword 59 dot application/x-dot 60 dvi application/x-dvi 61 dwf drawing/x-dwf 62 dwg application/x-autocad 63 dxf application/x-autocad 64 dxr application/x-director 65 ebk application/x-expandedbook 66 emb chemical/x-embl-dl-nucleotide 67 embl chemical/x-embl-dl-nucleotide 68 eps application/postscript 69 eri image/x-eri 70 es audio/echospeech 71 esl audio/echospeech 72 etc application/x-earthtime 73 etx text/x-setext 74 evm x-lml/x-evm 75 evy application/x-envoy 76 exe application/octet-stream 77 fh4 image/x-freehand 78 fh5 image/x-freehand 79 fhc image/x-freehand 80 fif image/fif 81 fm application/x-maker 82 fpx image/x-fpx 83 fvi video/isivideo 84 gau chemical/x-gaussian-input 85 gca application/x-gca-compressed 86 gdb x-lml/x-gdb 87 gif image/gif 88 gps application/x-gps 89 gtar application/x-gtar 90 gz application/x-gzip 91 hdf application/x-hdf 92 hdm text/x-hdml 93 hdml text/x-hdml 94 hlp application/winhlp 95 hqx application/mac-binhex40 96 htm text/html 97 html text/html 98 hts text/html 99 ice x-conference/x-cooltalk 100 ico application/octet-stream 101 ief image/ief 102 ifm image/gif 103 ifs image/ifs 104 imy audio/melody 105 ins application/x-NET-Install 106 ips application/x-ipscript 107 ipx application/x-ipix 108 it audio/x-mod 109 itz audio/x-mod 110 ivr i-world/i-vrml 111 j2k image/j2k 112 jad text/vnd.sun.j2me.app-descriptor 113 jam application/x-jam 114 jar application/java-archive 115 jnlp application/x-java-jnlp-file 116 jpe image/jpeg 117 jpeg image/jpeg 118 jpg image/jpeg 119 jpz image/jpeg 120 js application/x-javascript 121 jwc application/jwc 122 kjx application/x-kjx 123 lak x-lml/x-lak 124 latex application/x-latex 125 lcc application/fastman 126 lcl application/x-digitalloca 127 lcr application/x-digitalloca 128 lgh application/lgh 129 lha application/octet-stream 130 lml x-lml/x-lml 131 lmlpack x-lml/x-lmlpack 132 lsf video/x-ms-asf 133 lsx video/x-ms-asf 134 lzh application/x-lzh 135 m13 application/x-msmediaview 136 m14 application/x-msmediaview 137 m15 audio/x-mod 138 m3u audio/x-mpegurl 139 m3url audio/x-mpegurl 140 ma1 audio/ma1 141 ma2 audio/ma2 142 ma3 audio/ma3 143 ma5 audio/ma5 144 man application/x-troff-man 145 map magnus-internal/imagemap 146 mbd application/mbedlet 147 mct application/x-mascot 148 mdb application/x-msaccess 149 mdz audio/x-mod 150 me application/x-troff-me 151 mel text/x-vmel 152 mi application/x-mif 153 mid audio/midi 154 midi audio/midi 155 mif application/x-mif 156 mil image/x-cals 157 mio audio/x-mio 158 mmf application/x-skt-lbs 159 mng video/x-mng 160 mny application/x-msmoney 161 moc application/x-mocha 162 mocha application/x-mocha 163 mod audio/x-mod 164 mof application/x-yumekara 165 mol chemical/x-mdl-molfile 166 mop chemical/x-mopac-input 167 mov video/quicktime 168 movie video/x-sgi-movie 169 mp2 audio/x-mpeg 170 mp3 audio/x-mpeg 171 mp4 video/mp4 172 mpc application/vnd.mpohun.certificate 173 mpe video/mpeg 174 mpeg video/mpeg 175 mpg video/mpeg 176 mpg4 video/mp4 177 mpga audio/mpeg 178 mpn application/vnd.mophun.application 179 mpp application/vnd.ms-project 180 mps application/x-mapserver 181 mrl text/x-mrml 182 mrm application/x-mrm 183 ms application/x-troff-ms 184 mts application/metastream 185 mtx application/metastream 186 mtz application/metastream 187 mzv application/metastream 188 nar application/zip 189 nbmp image/nbmp 190 nc application/x-netcdf 191 ndb x-lml/x-ndb 192 ndwn application/ndwn 193 nif application/x-nif 194 nmz application/x-scream 195 nokia-op-logo image/vnd.nok-oplogo-color 196 npx application/x-netfpx 197 nsnd audio/nsnd 198 nva application/x-neva1 199 oda application/oda 200 oom application/x-AtlasMate-Plugin 201 pac audio/x-pac 202 pae audio/x-epac 203 pan application/x-pan 204 pbm image/x-portable-bitmap 205 pcx image/x-pcx 206 pda image/x-pda 207 pdb chemical/x-pdb 208 pdf application/pdf 209 pfr application/font-tdpfr 210 pgm image/x-portable-graymap 211 pict image/x-pict 212 pm application/x-perl 213 pmd application/x-pmd 214 png image/png 215 pnm image/x-portable-anymap 216 pnz image/png 217 pot application/vnd.ms-powerpoint 218 ppm image/x-portable-pixmap 219 pps application/vnd.ms-powerpoint 220 ppt application/vnd.ms-powerpoint 221 pqf application/x-cprplayer 222 pqi application/cprplayer 223 prc application/x-prc 224 proxy application/x-ns-proxy-autoconfig 225 ps application/postscript 226 ptlk application/listenup 227 pub application/x-mspublisher 228 pvx video/x-pv-pvx 229 qcp audio/vnd.qcelp 230 qt video/quicktime 231 qti image/x-quicktime 232 qtif image/x-quicktime 233 r3t text/vnd.rn-realtext3d 234 ra audio/x-pn-realaudio 235 ram audio/x-pn-realaudio 236 rar application/x-rar-compressed 237 ras image/x-cmu-raster 238 rdf application/rdf+xml 239 rf image/vnd.rn-realflash 240 rgb image/x-rgb 241 rlf application/x-richlink 242 rm audio/x-pn-realaudio 243 rmf audio/x-rmf 244 rmm audio/x-pn-realaudio 245 rmvb audio/x-pn-realaudio 246 rnx application/vnd.rn-realplayer 247 roff application/x-troff 248 rp image/vnd.rn-realpix 249 rpm audio/x-pn-realaudio-plugin 250 rt text/vnd.rn-realtext 251 rte x-lml/x-gps 252 rtf application/rtf 253 rtg application/metastream 254 rtx text/richtext 255 rv video/vnd.rn-realvideo 256 rwc application/x-rogerwilco 257 s3m audio/x-mod 258 s3z audio/x-mod 259 sca application/x-supercard 260 scd application/x-msschedule 261 sdf application/e-score 262 sea application/x-stuffit 263 sgm text/x-sgml 264 sgml text/x-sgml 265 sh application/x-sh 266 shar application/x-shar 267 shtml magnus-internal/parsed-html 268 shw application/presentations 269 si6 image/si6 270 si7 image/vnd.stiwap.sis 271 si9 image/vnd.lgtwap.sis 272 sis application/vnd.symbian.install 273 sit application/x-stuffit 274 skd application/x-Koan 275 skm application/x-Koan 276 skp application/x-Koan 277 skt application/x-Koan 278 slc application/x-salsa 279 smd audio/x-smd 280 smi application/smil 281 smil application/smil 282 smp application/studiom 283 smz audio/x-smd 284 snd audio/basic 285 spc text/x-speech 286 spl application/futuresplash 287 spr application/x-sprite 288 sprite application/x-sprite 289 spt application/x-spt 290 src application/x-wais-source 291 stk application/hyperstudio 292 stm audio/x-mod 293 sv4cpio application/x-sv4cpio 294 sv4crc application/x-sv4crc 295 svf image/vnd 296 svg image/svg-xml 297 svh image/svh 298 svr x-world/x-svr 299 swf application/x-shockwave-flash 300 swfl application/x-shockwave-flash 301 t application/x-troff 302 tad application/octet-stream 303 talk text/x-speech 304 tar application/x-tar 305 taz application/x-tar 306 tbp application/x-timbuktu 307 tbt application/x-timbuktu 308 tcl application/x-tcl 309 tex application/x-tex 310 texi application/x-texinfo 311 texinfo application/x-texinfo 312 tgz application/x-tar 313 thm application/vnd.eri.thm 314 tif image/tiff 315 tiff image/tiff 316 tki application/x-tkined 317 tkined application/x-tkined 318 toc application/toc 319 toy image/toy 320 tr application/x-troff 321 trk x-lml/x-gps 322 trm application/x-msterminal 323 tsi audio/tsplayer 324 tsp application/dsptype 325 tsv text/tab-separated-values 326 tsv text/tab-separated-values 327 ttf application/octet-stream 328 ttz application/t-time 329 txt text/plain 330 ult audio/x-mod 331 ustar application/x-ustar 332 uu application/x-uuencode 333 uue application/x-uuencode 334 vcd application/x-cdlink 335 vcf text/x-vcard 336 vdo video/vdo 337 vib audio/vib 338 viv video/vivo 339 vivo video/vivo 340 vmd application/vocaltec-media-desc 341 vmf application/vocaltec-media-file 342 vmi application/x-dreamcast-vms-info 343 vms application/x-dreamcast-vms 344 vox audio/voxware 345 vqe audio/x-twinvq-plugin 346 vqf audio/x-twinvq 347 vql audio/x-twinvq 348 vre x-world/x-vream 349 vrml x-world/x-vrml 350 vrt x-world/x-vrt 351 vrw x-world/x-vream 352 vts workbook/formulaone 353 wav audio/x-wav 354 wax audio/x-ms-wax 355 wbmp image/vnd.wap.wbmp 356 web application/vnd.xara 357 wi image/wavelet 358 wis application/x-InstallShield 359 wm video/x-ms-wm 360 wma audio/x-ms-wma 361 wmd application/x-ms-wmd 362 wmf application/x-msmetafile 363 wml text/vnd.wap.wml 364 wmlc application/vnd.wap.wmlc 365 wmls text/vnd.wap.wmlscript 366 wmlsc application/vnd.wap.wmlscriptc 367 wmlscript text/vnd.wap.wmlscript 368 wmv audio/x-ms-wmv 369 wmx video/x-ms-wmx 370 wmz application/x-ms-wmz 371 wpng image/x-up-wpng 372 wpt x-lml/x-gps 373 wri application/x-mswrite 374 wrl x-world/x-vrml 375 wrz x-world/x-vrml 376 ws text/vnd.wap.wmlscript 377 wsc application/vnd.wap.wmlscriptc 378 wv video/wavelet 379 wvx video/x-ms-wvx 380 wxl application/x-wxl 381 x-gzip application/x-gzip 382 xar application/vnd.xara 383 xbm image/x-xbitmap 384 xdm application/x-xdma 385 xdma application/x-xdma 386 xdw application/vnd.fujixerox.docuworks 387 xht application/xhtml+xml 388 xhtm application/xhtml+xml 389 xhtml application/xhtml+xml 390 xla application/vnd.ms-excel 391 xlc application/vnd.ms-excel 392 xll application/x-excel 393 xlm application/vnd.ms-excel 394 xls application/vnd.ms-excel 395 xlt application/vnd.ms-excel 396 xlw application/vnd.ms-excel 397 xm audio/x-mod 398 xml text/xml 399 xmz audio/x-mod 400 xpi application/x-xpinstall 401 xpm image/x-xpixmap 402 xsit text/xml 403 xsl text/xml 404 xul text/xul 405 xwd image/x-xwindowdump 406 xyz chemical/x-pdb 407 yz1 application/x-yz1 408 z application/x-compress 409 zac application/x-zaurus-zac 410 zip application/zip

浙公网安备 33010602011771号