/** * Do the upload. * Checks are made in SpecialUpload::execute() */ protected function processUpload() { // Fetch the file if required $status = $this->mUpload->fetchFile(); if (!$status->isOK()) { $this->showUploadError($this->getOutput()->parse($status->getWikiText())); return; } if (!Hooks::run('UploadForm:BeforeProcessing', array(&$this))) { wfDebug("Hook 'UploadForm:BeforeProcessing' broke processing the file.\n"); // This code path is deprecated. If you want to break upload processing // do so by hooking into the appropriate hooks in UploadBase::verifyUpload // and UploadBase::verifyFile. // If you use this hook to break uploading, the user will be returned // an empty form with no error message whatsoever. return; } // Upload verification $details = $this->mUpload->verifyUpload(); if ($details['status'] != UploadBase::OK) { $this->processVerificationError($details); return; } // Verify permissions for this title $permErrors = $this->mUpload->verifyTitlePermissions($this->getUser()); if ($permErrors !== true) { $code = array_shift($permErrors[0]); $this->showRecoverableUploadError($this->msg($code, $permErrors[0])->parse()); return; } $this->mLocalFile = $this->mUpload->getLocalFile(); // Check warnings if necessary if (!$this->mIgnoreWarning) { $warnings = $this->mUpload->checkWarnings(); if ($this->showUploadWarning($warnings)) { return; } } // This is as late as we can throttle, after expected issues have been handled if (UploadBase::isThrottled($this->getUser())) { $this->showRecoverableUploadError($this->msg('actionthrottledtext')->escaped()); return; } // Get the page text if this is not a reupload if (!$this->mForReUpload) { $pageText = self::getInitialPageText($this->mComment, $this->mLicense, $this->mCopyrightStatus, $this->mCopyrightSource, $this->getConfig()); } else { $pageText = false; } $status = $this->mUpload->performUpload($this->mComment, $pageText, $this->mWatchthis, $this->getUser()); if (!$status->isGood()) { $this->showUploadError($this->getOutput()->parse($status->getWikiText())); return; } // Success, redirect to description page $this->mUploadSuccessful = true; Hooks::run('SpecialUploadComplete', array(&$this)); $this->getOutput()->redirect($this->mLocalFile->getTitle()->getFullURL()); }
/** * Check warnings if ignorewarnings is not set. * Returns a suitable array for inclusion into API results if there were warnings * Returns the empty array if there were no warnings * * @return array */ protected function getApiWarnings() { $warnings = array(); if (!$this->mParams['ignorewarnings']) { $warnings = $this->mUpload->checkWarnings(); } return $this->transformWarnings($warnings); }
/** * Check warnings. * Returns a suitable array for inclusion into API results if there were warnings * Returns the empty array if there were no warnings * * @return array */ protected function getApiWarnings() { $warnings = $this->mUpload->checkWarnings(); return $this->transformWarnings($warnings); }
/** * Wrapper around the parent function in order to defer checking warnings * until the file really has been fetched. */ public function checkWarnings() { if ($this->mAsync) { $this->mIgnoreWarnings = false; return array(); } return parent::checkWarnings(); }
/** * @param UploadBase $upload * @return array */ private function uploadImage($upload) { global $wgRequest, $wgUser, $wgEnableUploads; $uploadStatus = array("status" => "error"); if (empty($wgEnableUploads)) { $uploadStatus["errors"] = [wfMessage('themedesigner-upload-disabled')->plain()]; } else { $upload->initializeFromRequest($wgRequest); $permErrors = $upload->verifyPermissions($wgUser); if ($permErrors !== true) { $uploadStatus["errors"] = array(wfMsg('badaccess')); } else { $details = $upload->verifyUpload(); if ($details['status'] != UploadBase::OK) { $uploadStatus["errors"] = array($this->getUploadErrorMessage($details)); } else { $warnings = $upload->checkWarnings(); if (!empty($warnings)) { $uploadStatus["errors"] = $this->getUploadWarningMessages($warnings); } else { //save temp file $status = $upload->performUpload(); $uploadStatus["status"] = "uploadattempted"; $uploadStatus["isGood"] = $status->isGood(); } } } } return $uploadStatus; }
/** * Wrapper around the parent function in order to defer checking warnings * until the file really has been fetched. */ public function checkWarnings() { return parent::checkWarnings(); }