php限制上传文件类型程序代码
我们一般不会在前端限制用户上传文件时的文件类,因为也没什么好的办法来限制只能使用像php,asp这类来操作,下面我来介绍利用js来定义type=file浏览上传时的文件类型与php中限制上传文件类型代码.
利用js,例1代码如下:
<script> function check(){ var filepath=path.value filepath=filepath.substring(filepath.lastIndexOf( '.' )+1,filepath.length) if (filepath != 'jpg' && filepath != 'gif' ) alert( "只能上传JPG或GIF格式的图片" ) } </script> <input type=file name=path onpropertychange= "check()" > (只能上传JPG或GIF格式的图片)例2,代码如下:
<script> function ck(obj){ if (obj.value.length>0){ var af= "jpg,gif,png,zip,rar,txt,htm" ; if (eval( "with(obj.value)if(!/" +af.split( "," ).join( "|" )+"/ig.test(substring(lastIndexOf( '.' ) +1,length)))1; ")){alert(" Allowed file types:n"+af);obj.createTextRange().execCommand( 'delete' )}; }} </script> <form> <input type=file name=path onpropertychange= "ck(this)" /></form>例3,代码如下:
/* * 判断图片类型 * * @param ths * type="file"的javascript对象 * @return true-符合要求,false-不符合 */ function checkImgType(ths){ if (ths.value == "" ) { alert( "请上传图片" ); return false; } else { if (!/.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(ths.value)) { alert( "图片类型必须是.gif,jpeg,jpg,png中的一种" ); //开源代码phpfensi.com ths.value = "" ; return false; } } return true; }如果是利用php,asp类的我们就不能像上面处理了需要如下代码:
$name = $_FILES [ 'file4' ][ 'name' ]; //获取客户端机器原文件的名称 $type = strstr ( $name , "." ); //获取从"."到最后的字符 if($type!=".txt") { echo "对不起,您上传文件的格式不正确!!" ; echo "<meta http-equiv=" Refresh " content=" 3;url=index.php?lmbs=文件上传 ">将在3秒钟后返回前页..." ; }上面的方法说实话只能骗小朋友了,只要我们把上传文件的后缀名改一下就可能通过上面验证,稍加改进后这样就与文件后缀名无关了,代码如下:
$temppath = $upfile [ 'tmp_name' ]; $fileinfo = pathinfo ( $upfile [ 'name' ]); $extension = $upfile [ 'type' ]; switch ( $extension ) { case 'application/msword' : $extension = 'doc' ; break ; case 'application/vnd.ms-excel' : $extension = 'xls' ; break ; case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' : $extension = 'docx' ; break ; case 'application/vnd.ms-powerpoint' : $extension = 'ppt' ; break ; case 'application/pdf' : $extension = 'pdf' ; break ; case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' : $extension = 'xlsx' ; break ; default : die ( '只允许上传doc,docx,xls,pdf,ppt文件 <a href="wend.php">重新上传</a>' ); }id 后缀名 php识别出的文件类型
0 gif image/gif
1 jpg image/jpeg
2 png image/png
3 bmp image/bmp
4 psd application/octet-stream
5 ico image/x-icon
6 rar application/octet-stream
7 zip application/zip
8 7z application/octet-stream
9 exe application/octet-stream
10 avi video/avi
11 rmvb application/vnd.rn-realmedia-vbr
12 3gp application/octet-stream
13 flv application/octet-stream
14 mp3 audio/mpeg
15 wav audio/wav
16 krc application/octet-stream
17 lrc application/octet-stream
18 txt text/plain
19 doc application/msword
20 xls application/vnd.ms-excel
21 ppt application/vnd.ms-powerpoint
22 pdf application/pdf
23 chm application/octet-stream
24 mdb application/msaccess
25 sql application/octet-stream
26 con application/octet-stream
27 log text/plain
28 dat application/octet-stream
29 ini application/octet-stream
30 php application/octet-stream
31 html text/html
32 htm text/html
33 ttf application/octet-stream
34 fon application/octet-stream
35 js application/x-javascript
36 xml text/xml
37 dll application/octet-stream
38 dll application/octet-stream
查看更多关于php限制上传文件类型程序代码 - php上传下载的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29320