本文整理匯總了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;
//.........這裏部分代碼省略.........