public static function uploadFile()
 {
     if (wfReadOnly()) {
         global $wgReadOnly;
         $oAjaxResponse = new AjaxResponse(FormatJson::encode(array('success' => false, 'msg' => wfMessage('bs-readonly', $wgReadOnly)->escaped())));
         $oAjaxResponse->setContentType('text/html');
         return $oAjaxResponse;
     }
     global $wgRequest, $wgUser;
     self::unsetUserImage($wgUser);
     $oAvatars = BsExtensionManager::getExtension('Avatars');
     $sAvatarFileName = self::$sAvatarFilePrefix . $wgUser->getId() . ".png";
     $oStatus = BsFileSystemHelper::uploadAndConvertImage($wgRequest->getVal('name'), $oAvatars->mInfo[EXTINFO::NAME], $sAvatarFileName);
     if (!$oStatus->isGood()) {
         $aErrors = $oStatus->getErrorsArray();
         $aResult = json_encode(array('success' => false, 'msg' => $aErrors[0][0]));
     } else {
         $aResult = json_encode(array('success' => true, 'msg' => wfMessage('bs-avatars-upload-complete')->plain(), 'name' => $oStatus->getValue()));
         # found no way to regenerate thumbs. just delete thumb folder if it exists
         $oStatus = BsFileSystemHelper::deleteFolder('Avatars' . DS . 'thumb' . DS . $sAvatarFileName, true);
         if (!$oStatus->isGood()) {
             throw new MWException('FATAL: Avatar thumbs could no be deleted!');
         }
     }
     $oAjaxResponse = new AjaxResponse($aResult);
     $oAjaxResponse->setContentType('text/html');
     return $oAjaxResponse;
 }