芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/cloud.pulsehost.co.uk/modules/MailTnefWebclientPlugin/Module.php
oApiFileCache = new \Aurora\System\Managers\Filecache(); } /** * @return Module */ public static function getInstance() { return parent::getInstance(); } /** * @return Module */ public static function Decorator() { return parent::Decorator(); } /** * @return Settings */ public function getModuleSettings() { return $this->oModuleSettings; } public function ExpandFile($UserId, $Hash) { $mResult = array(); $sUUID = \Aurora\System\Api::getUserUUIDById($UserId); $aValues = \Aurora\System\Api::DecodeKeyValues($Hash); $oMailDecorator = \Aurora\Modules\Mail\Module::Decorator(); $aFiles = $oMailDecorator->SaveAttachmentsAsTempFiles($aValues['AccountID'], [$Hash]); foreach ($aFiles as $sTempName => $sHash) { if ($sHash === $Hash) { $rResource = $this->oApiFileCache->getFile($sUUID, $sTempName); $mResult = $this->expandTnefAttachment($sUUID, $rResource); } } return $mResult; } private function expandTnefAttachment($sUUID, $rResource) { $mResult = array(); $attachment = new \TNEFDecoder\TNEFAttachment(); if ($rResource) { $attachment->decodeTnef(\stream_get_contents($rResource)); $files = $attachment->getFiles(); foreach ($files as $file) { $sFileName = $file->getName(); $sFileNameEncoding = mb_detect_encoding($sFileName, array("UTF-8", "SJIS")); if ($sFileNameEncoding != "UTF-8") { $sFileName = mb_convert_encoding($sFileName, "UTF-8", $sFileNameEncoding); } $sTempName = md5(\microtime(true) . rand(1000, 9999)); $rItemStream = fopen('php://memory', 'r+'); fwrite($rItemStream, $file->getContent()); rewind($rItemStream); if ($this->oApiFileCache->putFile($sUUID, $sTempName, $rItemStream, '', self::GetName())) { $sFileName = str_replace("\0", '', $sFileName); $mResult[] = \Aurora\System\Utils::GetClientFileResponse( self::GetName(), \Aurora\System\Api::getAuthenticatedUserId(), $sFileName, $sTempName, strlen($file->getSize()) ); } } } return $mResult; } }