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

首頁 > 語言 > PHP > 正文

PHP文件上傳判斷file是否己選擇上傳文件

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

一個合格的程序員在實現數據入庫中時我們都會有一些非常嚴密的過濾與數據規則了,像我們文件上傳時在前段要判斷用戶是否選擇上傳文件同時在后臺也可判斷是否有上傳的文件了,下面我們就一起來看看相關例子吧.

如下html代碼如下:

  1. <formaction="?"method="post"enctype='multipart/form-data'
  2. 文件上傳:<inputtype="file"name="file"id="file"/> 
  3. <inputtype="submit"id="send"value="提交"/> 
  4. </form> 

我們最常用的在前端簡單的進行判斷,代碼如下:

  1. <script> 
  2. varsend=document.getElementById("send"); 
  3. send.onclick=function(){ 
  4. varfile=document.getElementById("file").value; 
  5. if(file.length<1){ 
  6. alert('請選擇圖片'); 
  7. returnfalse; 
  8. </script> 

如果要做真正的安全我們需要在后臺進入判斷處理,代碼如下:

  1. <?php 
  2. //判斷pic文件框是否已經選擇文件 
  3. if(!emptyempty($_FILES['file']['tmp_name'])){ 
  4. echo'已選擇文件'
  5. }else
  6. echo'請選擇文件'
  7. //開源軟件:Vevb.com 
  8. //PS:$_FILES后面的['tmp_name']一定不要忘寫,它表示是一個臨時的意思 
  9. ?> 

安例分析

js判斷是比較籠統了我們只是使用了file=document.getElementById("file").value;來判斷file有沒有值或不為空了,這樣只要輸入一個數字就可以直接提交了,所以我們需要進入如上傳文件的用戶名限制,代碼如下:

  1. functionCheckWorkFile() 
  2. varobj=document.getElementById('fuMain'); 
  3. if(obj.value==''
  4. alert('請選擇要上傳的作業書文件'); 
  5. returnfalse; 
  6. varstuff=obj.value.match(/^(.*)(\.)(.{1,8})$/)[3]; 
  7. if(stuff!='doc'
  8. alert('文件類型不正確,請選擇.doc文件'); 
  9. returnfalse; 
  10. returntrue; 

對于php處理我們也只使用了if(!empty($_FILES['file']['tmp_name'])){來判斷不為空了,其實這樣也是不合理的,如我們可以如此處理,代碼如下:

  1. function file_type($filename
  2.     $file = fopen($filename"rb"); 
  3.     $bin = fread($file, 2); //只讀2字節 
  4.     fclose($file); 
  5.     $strInfo = @unpack("C2chars"$bin); 
  6.     $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); 
  7.     $fileType = ''
  8.     switch ($typeCode
  9.     { 
  10.         case 7790: 
  11.             $fileType = 'exe'
  12.             break
  13.         case 7784: 
  14.             $fileType = 'midi'
  15.             break
  16.         case 8297: 
  17.             $fileType = 'rar'
  18.             break;         
  19.   case 8075: 
  20.             $fileType = 'zip'
  21.             break
  22.         case 255216: 
  23.             $fileType = 'jpg'
  24.             break
  25.         case 7173: 
  26.             $fileType = 'gif'
  27.             break
  28.         case 6677: 
  29.             $fileType = 'bmp'
  30.             break
  31.         case 13780: 
  32.             $fileType = 'png'
  33.             break
  34.         default
  35.             $fileType = 'unknown: '.$typeCode
  36.     } 
  37.  //Fix 
  38.  if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg'
  39.  if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png'
  40.     return $fileType
  41. echo file_type('start.php');   // 6063 or 6033 

這樣我們可以限制上傳文件類型的同時也給程序做了一個安全處理了.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 且末县| 兖州市| 明星| 呈贡县| 聂荣县| 正宁县| 屏东县| 丹巴县| 文安县| 海口市| 伊吾县| 平潭县| 松溪县| 遂溪县| 贞丰县| 南投市| 河池市| 宝丰县| 邹城市| 延吉市| 东乡族自治县| 庆安县| 恩施市| 台东市| 崇明县| 巴中市| 娱乐| 土默特右旗| 余姚市| 太仆寺旗| 清丰县| 从化市| 潢川县| 邳州市| 繁峙县| 灵寿县| 荔波县| 长岛县| 师宗县| 佛学| 顺平县|