/** * @return array */ public function UploadHelpdeskFile() { $oAccount = null; $oUser = $this->getHelpdeskAccountFromParam($oAccount); if (!$this->oApiCapability->IsHelpdeskSupported() || !$this->oApiCapability->IsFilesSupported()) { throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::AccessDenied); } $aFileData = $this->getParamValue('FileData', null); $iSizeLimit = 0; $sError = ''; $aResponse = array(); if ($oUser) { if (is_array($aFileData)) { if (0 < $iSizeLimit && $iSizeLimit < (int) $aFileData['size']) { $sError = 'size'; } else { $sSavedName = 'upload-post-' . md5($aFileData['name'] . $aFileData['tmp_name']); if ($this->ApiFileCache()->MoveUploadedFile($oUser, $sSavedName, $aFileData['tmp_name'])) { $sUploadName = $aFileData['name']; $iSize = $aFileData['size']; $sMimeType = \MailSo\Base\Utils::MimeContentType($sUploadName); $aResponse['HelpdeskFile'] = array('Name' => $sUploadName, 'TempName' => $sSavedName, 'MimeType' => $sMimeType, 'Size' => (int) $iSize, 'Hash' => \CApi::EncodeKeyValues(array('TempFile' => true, 'HelpdeskTenantID' => $oUser->IdTenant, 'HelpdeskUserID' => $oUser->IdHelpdeskUser, 'Name' => $sUploadName, 'TempName' => $sSavedName))); } else { $sError = 'unknown'; } } } else { $sError = 'unknown'; } } else { $sError = 'auth'; } if (0 < strlen($sError)) { $aResponse['Error'] = $sError; } return $this->DefaultResponse($oAccount, __FUNCTION__, $aResponse); }