国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php限制上傳文件類型程序代碼

2024-09-04 11:45:01
字體:
來源:轉載
供稿:網友

我們一般不會在前端限制用戶上傳文件時的文件類,因為也沒什么好的辦法來限制只能使用像php,asp這類來操作,下面我來介紹利用js來定義type=file瀏覽上傳時的文件類型與php中限制上傳文件類型代碼.

利用js,例1代碼如下:

  1. <script> 
  2. function check(){ 
  3. var filepath=path.value 
  4. filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length) 
  5. if(filepath != 'jpg' && filepath != 'gif'
  6. alert("只能上傳JPG或GIF格式的圖片"
  7. </script> 
  8.  
  9. <input type=file name=path onpropertychange="check()"> (只能上傳JPG或GIF格式的圖片) 

例2,代碼如下:

  1. <script> 
  2. function ck(obj){if(obj.value.length>0){ 
  3. var af="jpg,gif,png,zip,rar,txt,htm"
  4. if(eval("with(obj.value)if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.'
  5.  
  6. +1,length)))1;")){alert("Allowed file types:n"+af);obj.createTextRange().execCommand('delete')}; 
  7. }} 
  8. </script> 
  9. <form> 
  10. <input type=file name=path onpropertychange="ck(this)"/></form> 

例3,代碼如下:

  1. /* 
  2.  * 判斷圖片類型 
  3.  *  
  4.  * @param ths  
  5.  *    type="file"的javascript對象 
  6.  * @return true-符合要求,false-不符合 
  7.  */ 
  8. function checkImgType(ths){ 
  9.  if (ths.value == "") { 
  10.   alert("請上傳圖片"); 
  11.   return false; 
  12.  } else { 
  13.   if (!/.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(ths.value)) { 
  14.    alert("圖片類型必須是.gif,jpeg,jpg,png中的一種"); 
  15.    //開源代碼Vevb.com 
  16.    ths.value = ""
  17.    return false; 
  18.   } 
  19.  } 
  20.  return true; 

如果是利用php,asp類的我們就不能像上面處理了需要如下代碼:

  1. $name=$_FILES['file4']['name']; //獲取客戶端機器原文件的名稱  
  2. $type=strstr($name,"."); //獲取從"."到最后的字符 if($type!=".txt") 
  3. echo "對不起,您上傳文件的格式不正確!!";  
  4. echo "<meta http-equiv="Refresh" content="3;url=index.php?lmbs=文件上傳">將在3秒鐘后返回前頁...";  

上面的方法說實話只能騙小朋友了,只要我們把上傳文件的后綴名改一下就可能通過上面驗證,稍加改進后這樣就與文件后綴名無關了,代碼如下:

  1. $temppath=$upfile['tmp_name']; 
  2. $fileinfo=pathinfo($upfile['name']); 
  3. $extension=$upfile['type']; 
  4. switch$extension ) 
  5.     case 'application/msword'
  6.     $extension ='doc'
  7.     break
  8.     case 'application/vnd.ms-excel'
  9.     $extension ='xls'
  10.     break
  11.     case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  12.     $extension ='docx'
  13.     break
  14.     case 'application/vnd.ms-powerpoint'
  15.     $extension ='ppt'
  16.     break
  17.     case 'application/pdf'
  18.     $extension ='pdf'
  19.     break
  20.     case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  21.     $extension ='xlsx'
  22.     break
  23.     default
  24.     die('只允許上傳doc,docx,xls,pdf,ppt文件 <a href="wend.php">重新上傳</a>'); 
  25.      
  26.  } 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文安县| 随州市| 温州市| 六安市| 新田县| 襄樊市| 博罗县| 肇州县| 宁河县| 辽宁省| 托里县| 手游| 凤山市| 巴里| 库伦旗| 松江区| 淮阳县| 白山市| 山阴县| 清丰县| 河津市| 宝丰县| 承德县| 东明县| 克什克腾旗| 淮南市| 和田县| 平谷区| 宁武县| 曲麻莱县| 调兵山市| 藁城市| 黎平县| 湖北省| 万全县| 鲁山县| 峨眉山市| 嘉义市| 依安县| 襄城县| 庆云县|