限制上傳檔案類型程式碼_PHP教程

來源:互聯網
上載者:User
我們一般不會在前段限制使用者上傳檔案時的檔案類,因為也沒什麼好的辦法來限制只能使用像php,asp這類來操作,下面我來介紹利用js來定義type=file瀏覽上傳時的檔案類型與php中限制上傳檔案類型代碼。

利用js

例1

代碼如下 複製代碼

(只能上傳JPG或GIF格式的圖片)

例2

代碼如下 複製代碼


例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 "將在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檔案 重新上傳');

}

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


http://www.bkjia.com/PHPjc/444631.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444631.htmlTechArticle我們一般不會在前段限制使用者上傳檔案時的檔案類,因為也沒什麼好的辦法來限制只能使用像php,asp這類來操作,下面我來介紹利用js來定義...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.