public function UploadFile($fieldAlias, $fileInfo, &$pkVal = NULL) { //$allowedTypes = $this->GetFieldProperty($fieldAlias, 'allowed'); if (uEvents::TriggerEvent('BeforeUploadFile', $this, array($fieldAlias, $fileInfo, &$pkVal)) === FALSE) { return FALSE; } if (!file_exists($fileInfo['tmp_name'])) { AjaxEcho('alert("File too large. Maximum File Size: ' . utopia::ReadableBytes(utopia::GetMaxUpload()) . '");'); $this->ResetField($fieldAlias, $pkVal); return; } $this->UpdateField($fieldAlias . '_filename', $fileInfo['name'], $pkVal); $this->UpdateField($fieldAlias . '_filetype', $fileInfo['type'], $pkVal); $type = $this->GetFieldType($fieldAlias); if ($type === ftFILE || $type === ftIMAGE) { $value = file_get_contents($fileInfo['tmp_name']); $this->UpdateField($fieldAlias, $value, $pkVal); } else { $targetFile = md5_file($fileInfo['tmp_name']) . sha1_file($fileInfo['tmp_name']); $targetPath = 'uFiles/' . substr($targetFile, 0, 3) . '/' . substr($targetFile, 3, 3) . '/'; //.date('Y').'/'.date('m-d').'/'; if (!file_exists(PATH_ABS_ROOT . $targetPath)) { mkdir(PATH_ABS_ROOT . $targetPath, 0777, true); } if (!file_exists(PATH_ABS_ROOT . $targetPath . $targetFile)) { copy($fileInfo['tmp_name'], PATH_ABS_ROOT . $targetPath . $targetFile); } $this->UpdateField($fieldAlias, $targetPath . $targetFile, $pkVal); } if (uEvents::TriggerEvent('AfterUploadFile', $this, array($fieldAlias, $fileInfo, &$pkVal)) === FALSE) { return FALSE; } }