我们一般不会在前段限制用户上传文件时的文件类,因为也没什么好的办法来限制只能使用像php,asp这类来操作,下面我来介绍利用js来定义type=file浏览上传时的文件类型与php中限制上传文件类型代码。
利用js
例1
代码如下 | 复制代码 |
<script><br />function check(){<br />var filepath=path.value<br />filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length)<br />if(filepath != 'jpg' && filepath != 'gif')<br />alert("只能上传JPG或GIF格式的图片")<br />}<br /></script> (只能上传JPG或GIF格式的图片) |
例2
代码如下 | 复制代码 |
<script><br />function ck(obj){if(obj.value.length>0){<br />var af="jpg,gif,png,zip,rar,txt,htm";<br />if(eval("with(obj.value)if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.')</script> +1,length)))1;")){alert("Allowed file types:n"+af);obj.createTextRange().execCommand('delete')}; |
例3
代码如下 | 复制代码 |
/* |
如果是利用php,asp类的我们就不能像上面处理了需要如下
代码如下 | 复制代码 |
$name=$_FILES['file4']['name']; //获取客户端机器原文件的名称 |
上面的方法说实话只能骗小朋友了,只要我们把上传文件的后缀名改一下就可能通过上面验证
稍加改进后这样就与文件后缀名无关了
代码如下 | 复制代码 |
$temppath=$upfile['tmp_name']; |
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