當前位置: 首頁>>代碼示例>>PHP>>正文


PHP IFilter::checkHex方法代碼示例

本文整理匯總了PHP中IFilter::checkHex方法的典型用法代碼示例。如果您正苦於以下問題:PHP IFilter::checkHex方法的具體用法?PHP IFilter::checkHex怎麽用?PHP IFilter::checkHex使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在IFilter的用法示例。


在下文中一共展示了IFilter::checkHex方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: execute

 /**
  * @brief  開始執行上傳
  * @return array 包含上傳成功信息的數組
  *		$file = array(
  *			 name    如果上傳成功,則返回上傳後的文件名稱,如果失敗,則返回客戶端名稱
  *			 size    上傳附件大小
  *           fileSrc 上傳文件完整路徑
  *			 dir     上傳目錄
  *			 ininame 上傳圖片名
  *			 flag    -1:上傳的文件超出服務器限製; -2:上傳的文件超出瀏覽器限製; -3:上傳的文件被部分上傳; -4:沒有找到上傳的文件; -5:上傳的文件丟失;
  *                   -6:上傳的臨時文件沒有正確寫入; -7:擴展名不允許上傳; -8:上傳的文件超出了程序的限製; -9:上傳的文件中有木馬病毒 ; 1:上傳成功;
  *			 ext     上傳附件擴展名
  *		);
  */
 public function execute()
 {
     //總的文件上傳信息
     $info = array();
     foreach ($_FILES as $field => $file) {
         $fileInfo = array();
         //不存在上傳的文件名
         if (!isset($_FILES[$field]['name']) || $_FILES[$field]['name'] == '') {
             continue;
         }
         //上傳控件為數組格式 file[]格式
         if (is_array($_FILES[$field]['name'])) {
             $keys = array_keys($_FILES[$field]['name']);
             foreach ($keys as $key) {
                 $fileInfo[$key]['name'] = $_FILES[$field]['name'][$key];
                 //上傳出現錯誤
                 if (isset($_FILES[$field]['error'][$key]) && $_FILES[$field]['error'][$key] != 0) {
                     $fileInfo[$key]['flag'] = 0 - $_FILES[$field]['error'][$key];
                 } else {
                     //獲取擴展名
                     $fileext = IFile::getFileType($_FILES[$field]['tmp_name'][$key]);
                     if (is_array($fileext) || $fileext == null) {
                         $fileext = IFile::getFileSuffix($_FILES[$field]['name'][$key]);
                     }
                     //圖片木馬檢測
                     if (in_array($fileext, $this->checkType) && !IFilter::checkHex($_FILES[$field]['tmp_name'][$key])) {
                         $fileInfo[$key]['flag'] = -9;
                     } else {
                         /*開始上傳文件*/
                         //(1)上傳類型不符合
                         if (!in_array($fileext, $this->allowType)) {
                             $fileInfo[$key]['flag'] = -7;
                         } else {
                             if ($_FILES[$field]['size'][$key] > $this->maxsize) {
                                 $fileInfo[$key]['flag'] = -8;
                             } else {
                                 //修改圖片狀態值
                                 $fileInfo[$key]['name'] = ITime::getDateTime('Ymdhis') . mt_rand(100, 999) . '.' . $fileext;
                                 $fileInfo[$key]['dir'] = $this->dir;
                                 $fileInfo[$key]['size'] = $_FILES[$field]['size'][$key];
                                 $fileInfo[$key]['ininame'] = $_FILES[$field]['name'][$key];
                                 $fileInfo[$key]['ext'] = $fileext;
                                 $fileInfo[$key]['fileSrc'] = $fileInfo[$key]['dir'] . $fileInfo[$key]['name'];
                                 $fileInfo[$key]['flag'] = 1;
                                 if ($this->isForge == false) {
                                     if (is_uploaded_file($_FILES[$field]['tmp_name'][$key])) {
                                         IFile::mkdir($this->dir);
                                         move_uploaded_file($_FILES[$field]['tmp_name'][$key], $this->dir . $fileInfo[$key]['name']);
                                     }
                                 } else {
                                     IFile::xcopy($_FILES[$field]['tmp_name'][$key], $this->dir . $fileInfo[$key]['name']);
                                 }
                             }
                         }
                     }
                 }
             }
         } else {
             $fileInfo[0]['name'] = $_FILES[$field]['name'];
             //上傳出現錯誤
             if (isset($_FILES[$field]['error']) && $_FILES[$field]['error'] != 0) {
                 $fileInfo[0]['flag'] = 0 - $_FILES[$field]['error'];
             } else {
                 //獲取擴展名
                 $fileext = IFile::getFileType($_FILES[$field]['tmp_name']);
                 if (is_array($fileext) || $fileext == null) {
                     $fileext = IFile::getFileSuffix($_FILES[$field]['name']);
                 }
                 //圖片木馬檢測
                 if (in_array($fileext, $this->checkType) && !IFilter::checkHex($_FILES[$field]['tmp_name'])) {
                     $fileInfo[0]['flag'] = -9;
                 } else {
                     /*開始上傳文件*/
                     //(1)上傳類型不符合
                     if (!in_array($fileext, $this->allowType)) {
                         $fileInfo[0]['flag'] = -7;
                     } else {
                         if ($_FILES[$field]['size'] > $this->maxsize) {
                             $fileInfo[0]['flag'] = -8;
                         } else {
                             //修改圖片狀態值
                             $fileInfo[0]['name'] = ITime::getDateTime('YmdHis') . mt_rand(100, 999) . '.' . $fileext;
                             $fileInfo[0]['dir'] = $this->dir;
                             $fileInfo[0]['size'] = $_FILES[$field]['size'];
                             $fileInfo[0]['ininame'] = $_FILES[$field]['name'];
                             $fileInfo[0]['ext'] = $fileext;
//.........這裏部分代碼省略.........
開發者ID:xzdesk,項目名稱:iwebshop.com,代碼行數:101,代碼來源:upload_class.php


注:本文中的IFilter::checkHex方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。