程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 限制上傳文件類型程序代碼

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

編輯:關於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中的一種");
   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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved