/** * upload an attachment * * @param Integer $forumId * @param String $groupId * @return Object $oMbqEtAtt */ public function uploadAttachment($oMbqEtForum, $groupId = null) { //ref wcf\action\AJAXUploadAction,wcf\action\AJAXProxyAction,wcf\data\attachment\AttachmentAction $parameters['objectType'] = 'com.woltlab.wbb.post'; $parameters['objectID'] = 0; $parameters['tmpHash'] = $groupId ? $groupId : StringUtil::getRandomID(); $parameters['parentObjectID'] = $oMbqEtForum->forumId->oriValue; $parameters['__files'] = UploadHandler::getUploadHandler('attachment'); //ref AJAXUploadAction::readParameters() $oAttachmentAction = new AttachmentAction(array(), 'upload', $parameters); //ref AJAXProxyAction::invoke() $oAttachmentAction->validateAction(); //todo:catch exception $ret = $oAttachmentAction->executeAction(); //todo:catch exception if ($ret['returnValues']['attachments']) { $r = array_shift($ret['returnValues']['attachments']); $oMbqEtAtt = MbqMain::$oClk->newObj('MbqEtAtt'); $oMbqEtAtt->attId->setOriValue($r['attachmentID']); $oMbqEtAtt->groupId->setOriValue($parameters['tmpHash']); $oMbqEtAtt->filtersSize->setOriValue($r['filesize']); $oMbqEtAtt->uploadFileName->setOriValue($r['filename']); return $oMbqEtAtt; } else { MbqError::alert('', "Upload attachment failed!", '', MBQ_ERR_APP); } }
/** * @see wcf\action\IAction::readParameters() */ public function readParameters() { parent::readParameters(); $this->parameters['__files'] = UploadHandler::getUploadHandler('__files'); }
/** * Creates the upload handler for the given option. * * @param \wcf\data\option\Option $option */ protected function createUploadHandler(Option $option) { if (!isset($this->uploadHandlers[$option->optionName])) { $this->uploadHandlers[$option->optionName] = UploadHandler::getUploadHandler($option->optionName); } }