MediaWiki master
MediaWiki\Specials\SpecialUpload Class Reference

Form for uploading media files. More...

Inherits MediaWiki\SpecialPage\SpecialPage.

Collaboration diagram for MediaWiki\Specials\SpecialUpload:

Public Member Functions

 __construct (?RepoGroup $repoGroup=null, ?UserOptionsLookup $userOptionsLookup=null, ?NamespaceInfo $nsInfo=null, ?WatchlistManager $watchlistManager=null)
 
 doesWrites ()
 Indicates whether POST requests to this special page require write access to the wiki.
 
 execute ( $par)
 
 getDupeWarning ( $dupes)
 Construct a warning and a gallery from an array of duplicate files.
 
 userCanExecute (User $user)
 This page can be shown if uploading is enabled.
 
- Public Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
 __construct ( $name='', $restriction='', $listed=true, $function=false, $file='', $includable=false)
 Default constructor for special pages Derivative classes should call this from their constructor Note that if the user does not have the required level, an error message will be displayed by the default execute() method, without the global function ever being called.
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators.
 
 checkPermissions ()
 Checks if userCanExecute, and if not throws a PermissionsError.
 
 checkReadOnly ()
 If the wiki is currently in readonly mode, throws a ReadOnlyError.
 
 getAssociatedNavigationLinks ()
 Return an array of strings representing page titles that are discoverable to end users via UI.
 
 getAuthority ()
 Shortcut to get the Authority executing this instance.
 
 getConfig ()
 Shortcut to get main config object.
 
 getContentLanguage ()
 Shortcut to get content language.
 
 getContext ()
 Gets the context this SpecialPage is executed in.
 
 getDescription ()
 Returns the name that goes in the \<h1\> in the special page itself, and also the name that will be listed in Special:Specialpages.
 
 getFinalGroupName ()
 Get the group that the special page belongs in on Special:SpecialPage Use this method, instead of getGroupName to allow customization of the group name from the wiki side.
 
 getFullTitle ()
 Return the full title, including $par.
 
 getLanguage ()
 Shortcut to get user's language.
 
 getLinkRenderer ()
 
 getLocalName ()
 Get the localised name of the special page.
 
 getName ()
 Get the canonical, unlocalized name of this special page without namespace.
 
 getOutput ()
 Get the OutputPage being used for this instance.
 
 getPageTitle ( $subpage=false)
 Get a self-referential title object.
 
 getRequest ()
 Get the WebRequest being used for this instance.
 
 getRestriction ()
 Get the permission that a user must have to execute this page.
 
 getShortDescription (string $path='')
 Similar to getDescription, but takes into account subpages and designed for display in tabs.
 
 getSkin ()
 Shortcut to get the skin being used for this instance.
 
 getUser ()
 Shortcut to get the User executing this instance.
 
 including ( $x=null)
 Whether the special page is being evaluated via transclusion.
 
 isCached ()
 Is this page cached? Expensive pages are cached or disabled in miser mode.
 
 isExpensive ()
 Is this page expensive (for some definition of expensive)? Expensive pages are disabled or cached in miser mode.
 
 isIncludable ()
 Whether it's allowed to transclude the special page via {{Special:Foo/params}}.
 
 isListed ()
 Whether this special page is listed in Special:SpecialPages.
 
 isRestricted ()
 Can be overridden by subclasses with more complicated permissions schemes.
 
 maxIncludeCacheTime ()
 How long to cache page when it is being included.
 
 msg ( $key,... $params)
 Wrapper around wfMessage that sets the current context.
 
 prefixSearchSubpages ( $search, $limit, $offset)
 Return an array of subpages beginning with $search that this special page will accept.
 
 requireLogin ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin')
 If the user is not logged in, throws UserNotLoggedIn error.
 
 requireNamedUser ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin', bool $alwaysRedirectToLoginPage=false)
 If the user is not logged in or is a temporary user, throws UserNotLoggedIn.
 
 run ( $subPage)
 Entry point.
 
 setContentLanguage (Language $contentLanguage)
 Set content language.
 
 setContext ( $context)
 Sets the context this SpecialPage is executed in.
 
 setHookContainer (HookContainer $hookContainer)
 
 setLinkRenderer (LinkRenderer $linkRenderer)
 
 setSpecialPageFactory (SpecialPageFactory $specialPageFactory)
 

Static Public Member Functions

static getExistsWarning ( $exists)
 Functions for formatting warnings.
 
static getInitialPageText ( $comment='', $license='', $copyStatus='', $source='', ?Config $config=null)
 Get the initial image page text based on a comment and optional file status information.
 
static rotationEnabled ()
 Should we rotate images in the preview on Special:Upload.
 
- Static Public Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
static getSafeTitleFor ( $name, $subpage=false)
 Get a localised Title object for a page name with a possibly unvalidated subpage.
 
static getTitleFor ( $name, $subpage=false, $fragment='')
 Get a localised Title object for a specified special page name If you don't need a full Title object, consider using TitleValue through getTitleValueFor() below.
 
static getTitleValueFor ( $name, $subpage=false, $fragment='')
 Get a localised TitleValue object for a specified special page name.
 
static newSearchPage (User $user)
 Get the users preferred search page.
 

Public Attributes

bool bool $allowAsync
 wether uploads by url should be asynchronous or not
 
string $mCacheKey
 The cache key to use to retreive the status of your async upload.
 
bool $mCancelUpload
 The user clicked "Cancel and return to upload form" button.
 
string $mComment
 
string $mCopyrightSource
 
string $mCopyrightStatus
 
string $mDesiredDestName
 The requested target file name.
 
string $mDestWarningAck
 
bool $mForReUpload
 The user followed an "overwrite this file" link.
 
bool $mIgnoreWarning
 
string $mLicense
 
LocalFile $mLocalFile
 
WebRequest FauxRequest $mRequest
 The request this form is supposed to handle.
 
string $mSourceType
 
bool $mTokenOk
 
UploadBase $mUpload
 
bool $mUploadClicked
 
bool $mUploadSuccessful = false
 Subclasses can use this to determine whether a file was uploaded.
 
bool $mWatchthis
 
string $uploadFormTextAfterSummary
 Raw html injection point for hooks not using HTMLForm.
 
string $uploadFormTextTop
 Raw html injection point for hooks not using HTMLForm.
 

Protected Member Functions

 getGroupName ()
 Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-group-*' for valid names This method defaults to group 'other'.
 
 getPageTextAndTags ()
 Get the page text and tags for the upload.
 
 getUploadForm ( $message='', $sessionKey='', $hideIgnoreWarning=false)
 Get an UploadForm instance with title and text properly set.
 
 getWatchCheck ()
 See if we should check the 'watch this page' checkbox on the form based on the user's preferences and whether we're being asked to create a new file or update an existing one.
 
 isAsyncUpload ()
 Check if the current request is an async upload by url request.
 
 loadRequest ()
 Initialize instance variables from request and create an Upload handler.
 
 performUploadChecks ( $fetchFileStatus)
 Common steps for processing uploads.
 
 processAsyncUpload ()
 Process an asynchronous upload.
 
 processUpload ()
 Do the upload.
 
 processVerificationError ( $details)
 Provides output to the user for a result of UploadBase::verifyUpload.
 
 showRecoverableUploadError ( $message)
 Stashes the upload and shows the main upload form.
 
 showUploadError ( $message)
 Show the upload form with error message, but do not stash the file.
 
 showUploadForm ( $form)
 Show the main upload form.
 
 showUploadStatus ( $user)
 Show the upload status.
 
 showUploadWarning ( $warnings)
 Stashes the upload, shows the main form, but adds a "continue anyway button".
 
 unsaveUploadedFile ()
 Remove a temporarily kept file stashed by saveTempUploadedFile().
 
- Protected Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
 addFeedLinks ( $params)
 Adds RSS/atom links.
 
 afterExecute ( $subPage)
 Gets called after.
 
 authorizeAction (?string $action=null)
 Utility function for authorizing an action to be performed by the special page.
 
 beforeExecute ( $subPage)
 Gets called before.
 
 buildPrevNextNavigation ( $offset, $limit, array $query=[], $atend=false, $subpage=false)
 Generate (prev x| next x) (20|50|100...) type links for paging.
 
 checkLoginSecurityLevel ( $level=null)
 Verifies that the user meets the security level, possibly reauthenticating them in the process.
 
 displayRestrictionError ()
 Output an error message telling the user what access level they have to have.
 
 getAuthManager ()
 
 getCacheTTL ()
 
 getHookContainer ()
 
 getHookRunner ()
 
 getLoginSecurityLevel ()
 Tells if the special page does something security-sensitive and needs extra defense against a stolen account (e.g.
 
 getRobotPolicy ()
 Return the robot policy.
 
 getSpecialPageFactory ()
 
 getSubpagesForPrefixSearch ()
 Return an array of subpages that this special page will accept for prefix searches.
 
 outputHeader ( $summaryMessageKey='')
 Outputs a summary message on top of special pages By default the message key is the canonical name of the special page May be overridden, i.e.
 
 prefixSearchString ( $search, $limit, $offset, ?SearchEngineFactory $searchEngineFactory=null)
 Perform a regular substring search for prefixSearchSubpages.
 
 setAuthManager (AuthManager $authManager)
 Set the injected AuthManager from the special page constructor.
 
 setHeaders ()
 Sets headers - this should be called from the execute() method of all derived classes!
 
 setReauthPostData (array $data)
 Record preserved POST data after a reauthentication.
 
 useTransactionalTimeLimit ()
 Call wfTransactionalTimeLimit() if this request was POSTed.
 

Additional Inherited Members

- Static Protected Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
static prefixSearchArray ( $search, $limit, array $subpages, $offset)
 Helper function for implementations of prefixSearchSubpages() that filter the values in memory (as opposed to making a query).
 
- Protected Attributes inherited from MediaWiki\SpecialPage\SpecialPage
IContextSource $mContext
 Current request context.
 
bool $mIncludable
 Whether the special page can be included in an article.
 
bool $mIncluding
 Whether or not this special page is being included from an article.
 
string $mName
 The canonical name of this special page Also used as the message key for the default.
 
string $mRestriction
 Minimum user level required to access this page, or "" for anyone.
 

Detailed Description

Form for uploading media files.

Definition at line 64 of file SpecialUpload.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Specials\SpecialUpload::__construct ( ?RepoGroup $repoGroup = null,
?UserOptionsLookup $userOptionsLookup = null,
?NamespaceInfo $nsInfo = null,
?WatchlistManager $watchlistManager = null )
Parameters
RepoGroup | null$repoGroup
UserOptionsLookup | null$userOptionsLookup
NamespaceInfo | null$nsInfo
WatchlistManager | null$watchlistManager

Definition at line 81 of file SpecialUpload.php.

References MediaWiki\MainConfigNames\EnableAsyncUploads, MediaWiki\MainConfigNames\EnableAsyncUploadsByURL, MediaWiki\SpecialPage\SpecialPage\getConfig(), and MediaWiki\MediaWikiServices\getInstance().

Member Function Documentation

◆ doesWrites()

MediaWiki\Specials\SpecialUpload::doesWrites ( )

Indicates whether POST requests to this special page require write access to the wiki.

Subclasses must override this method to return true if any of the operations that they perform on POST requests are not "safe" per RFC 7231 section 4.2.1. A subclass's operation is "safe" if it is essentially read-only, i.e. the client does not request nor expect any state change that would be observable in the responses to future requests.

Implementations of this method must always return the same value, regardless of the parameters passed to the constructor or system state.

When handling GET/HEAD requests, subclasses should only perform "safe" operations. Note that some subclasses might only perform "safe" operations even for POST requests, particularly in the case where large input parameters are required.

Stability: stable
to override
Returns
bool
Since
1.27

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 103 of file SpecialUpload.php.

◆ execute()

◆ getDupeWarning()

MediaWiki\Specials\SpecialUpload::getDupeWarning ( $dupes)

Construct a warning and a gallery from an array of duplicate files.

Parameters
array$dupes
Returns
string

Definition at line 1150 of file SpecialUpload.php.

Referenced by MediaWiki\Specials\SpecialUpload\showUploadWarning().

◆ getExistsWarning()

static MediaWiki\Specials\SpecialUpload::getExistsWarning ( $exists)
static

Functions for formatting warnings.

Formats a result of UploadBase::getExistsWarning as HTML This check is static and can be done pre-upload via AJAX

Parameters
array$existsThe result of UploadBase::getExistsWarning
Returns
string Empty string if there is no warning or an HTML fragment

Definition at line 1111 of file SpecialUpload.php.

References getTitle(), and wfMessage().

Referenced by MediaWiki\Api\ApiQueryImageInfo\getInfo(), and MediaWiki\Specials\SpecialUpload\showUploadWarning().

◆ getGroupName()

MediaWiki\Specials\SpecialUpload::getGroupName ( )
protected

Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-group-*' for valid names This method defaults to group 'other'.

Stability: stable
to override
Returns
string
Since
1.21

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 1167 of file SpecialUpload.php.

◆ getInitialPageText()

static MediaWiki\Specials\SpecialUpload::getInitialPageText ( $comment = '',
$license = '',
$copyStatus = '',
$source = '',
?Config $config = null )
static

Get the initial image page text based on a comment and optional file status information.

Parameters
string$comment
string$license
string$copyStatus
string$source
Config | null$configConfiguration object to load data from
Returns
string

Definition at line 922 of file SpecialUpload.php.

References $source, MediaWiki\MainConfigNames\ForceUIMsgAsContentMsg, MediaWiki\MediaWikiServices\getInstance(), MediaWiki\MainConfigNames\UseCopyrightUpload, wfDebug(), and wfMessage().

◆ getPageTextAndTags()

MediaWiki\Specials\SpecialUpload::getPageTextAndTags ( )
protected

Get the page text and tags for the upload.

Returns
array|null

Definition at line 789 of file SpecialUpload.php.

References ChangeTags\canAddTagsAccompanyingChange().

◆ getUploadForm()

MediaWiki\Specials\SpecialUpload::getUploadForm ( $message = '',
$sessionKey = '',
$hideIgnoreWarning = false )
protected

◆ getWatchCheck()

MediaWiki\Specials\SpecialUpload::getWatchCheck ( )
protected

See if we should check the 'watch this page' checkbox on the form based on the user's preferences and whether we're being asked to create a new file or update an existing one.

In the case where 'watch edits' is off but 'watch creations' is on, we'll leave the box unchecked.

Note that the page target can be changed on the form, so our check state can get out of sync.

Returns
bool

Definition at line 983 of file SpecialUpload.php.

References NS_FILE.

Referenced by MediaWiki\Specials\SpecialUpload\getUploadForm().

◆ isAsyncUpload()

MediaWiki\Specials\SpecialUpload::isAsyncUpload ( )
protected

Check if the current request is an async upload by url request.

Returns
bool

Definition at line 224 of file SpecialUpload.php.

Referenced by MediaWiki\Specials\SpecialUpload\loadRequest().

◆ loadRequest()

MediaWiki\Specials\SpecialUpload::loadRequest ( )
protected

◆ performUploadChecks()

MediaWiki\Specials\SpecialUpload::performUploadChecks ( $fetchFileStatus)
protected

Common steps for processing uploads.

Parameters
Status$fetchFileStatus
Returns
bool

Definition at line 731 of file SpecialUpload.php.

References MediaWiki\SpecialPage\SpecialPage\getOutput(), and MediaWiki\Specials\SpecialUpload\showUploadError().

◆ processAsyncUpload()

MediaWiki\Specials\SpecialUpload::processAsyncUpload ( )
protected

Process an asynchronous upload.

Definition at line 862 of file SpecialUpload.php.

References $job.

Referenced by MediaWiki\Specials\SpecialUpload\execute().

◆ processUpload()

MediaWiki\Specials\SpecialUpload::processUpload ( )
protected

Do the upload.

Checks are made in SpecialUpload::execute()

Definition at line 822 of file SpecialUpload.php.

Referenced by MediaWiki\Specials\SpecialUpload\execute().

◆ processVerificationError()

MediaWiki\Specials\SpecialUpload::processVerificationError ( $details)
protected

Provides output to the user for a result of UploadBase::verifyUpload.

Parameters
array$detailsResult of UploadBase::verifyUpload

Definition at line 1014 of file SpecialUpload.php.

References MediaWiki\MainConfigNames\FileExtensions, and MediaWiki\Message\Message\newFromSpecifier().

Referenced by MediaWiki\Specials\SpecialUpload\showUploadStatus().

◆ rotationEnabled()

static MediaWiki\Specials\SpecialUpload::rotationEnabled ( )
static

Should we rotate images in the preview on Special:Upload.

This controls js: mw.config.get( 'wgFileCanRotate' )

Todo
What about non-BitmapHandler handled files?
Returns
bool

Definition at line 1179 of file SpecialUpload.php.

◆ showRecoverableUploadError()

MediaWiki\Specials\SpecialUpload::showRecoverableUploadError ( $message)
protected

Stashes the upload and shows the main upload form.

Note: only errors that can be handled by changing the name or description should be redirected here. It should be assumed that the file itself is sensible and has passed UploadBase::verifyFile. This essentially means that UploadBase::VERIFICATION_ERROR and UploadBase::EMPTY_FILE should not be passed here.

Parameters
string$messageHTML message to be passed to mainUploadForm

Definition at line 585 of file SpecialUpload.php.

References MediaWiki\Specials\SpecialUpload\getUploadForm(), MediaWiki\SpecialPage\SpecialPage\getUser(), MediaWiki\SpecialPage\SpecialPage\msg(), and MediaWiki\Specials\SpecialUpload\showUploadForm().

◆ showUploadError()

MediaWiki\Specials\SpecialUpload::showUploadError ( $message)
protected

Show the upload form with error message, but do not stash the file.

Parameters
string$messageHTML string

Definition at line 719 of file SpecialUpload.php.

References MediaWiki\Specials\SpecialUpload\getUploadForm(), MediaWiki\SpecialPage\SpecialPage\msg(), and MediaWiki\Specials\SpecialUpload\showUploadForm().

Referenced by MediaWiki\Specials\SpecialUpload\performUploadChecks(), and MediaWiki\Specials\SpecialUpload\showUploadStatus().

◆ showUploadForm()

MediaWiki\Specials\SpecialUpload::showUploadForm ( $form)
protected

◆ showUploadStatus()

◆ showUploadWarning()

MediaWiki\Specials\SpecialUpload::showUploadWarning ( $warnings)
protected

Stashes the upload, shows the main form, but adds a "continue anyway button".

Also checks whether there are actually warnings to display.

Parameters
array$warnings
Returns
bool True if warnings were displayed, false if there are no warnings and it should continue processing

Definition at line 610 of file SpecialUpload.php.

References MediaWiki\Specials\SpecialUpload\getDupeWarning(), MediaWiki\Specials\SpecialUpload\getExistsWarning(), MediaWiki\SpecialPage\SpecialPage\getLinkRenderer(), MediaWiki\SpecialPage\SpecialPage\getOutput(), MediaWiki\SpecialPage\SpecialPage\getTitleFor(), MediaWiki\Specials\SpecialUpload\getUploadForm(), MediaWiki\SpecialPage\SpecialPage\getUser(), MediaWiki\SpecialPage\SpecialPage\msg(), NS_FILE, and MediaWiki\Specials\SpecialUpload\showUploadForm().

Referenced by MediaWiki\Specials\SpecialUpload\showUploadStatus().

◆ unsaveUploadedFile()

MediaWiki\Specials\SpecialUpload::unsaveUploadedFile ( )
protected

Remove a temporarily kept file stashed by saveTempUploadedFile().

Returns
bool Success

Definition at line 1084 of file SpecialUpload.php.

References $success.

Referenced by MediaWiki\Specials\SpecialUpload\execute().

◆ userCanExecute()

MediaWiki\Specials\SpecialUpload::userCanExecute ( User $user)

This page can be shown if uploading is enabled.

Handle permission checking elsewhere in order to be able to show custom error messages.

Parameters
User$user
Returns
bool

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 236 of file SpecialUpload.php.

Member Data Documentation

◆ $allowAsync

bool bool MediaWiki\Specials\SpecialUpload::$allowAsync

wether uploads by url should be asynchronous or not

Definition at line 71 of file SpecialUpload.php.

◆ $mCacheKey

string MediaWiki\Specials\SpecialUpload::$mCacheKey

The cache key to use to retreive the status of your async upload.

Definition at line 115 of file SpecialUpload.php.

◆ $mCancelUpload

bool MediaWiki\Specials\SpecialUpload::$mCancelUpload

The user clicked "Cancel and return to upload form" button.

Definition at line 154 of file SpecialUpload.php.

◆ $mComment

string MediaWiki\Specials\SpecialUpload::$mComment

Definition at line 130 of file SpecialUpload.php.

◆ $mCopyrightSource

string MediaWiki\Specials\SpecialUpload::$mCopyrightSource

Definition at line 143 of file SpecialUpload.php.

◆ $mCopyrightStatus

string MediaWiki\Specials\SpecialUpload::$mCopyrightStatus

Definition at line 141 of file SpecialUpload.php.

◆ $mDesiredDestName

string MediaWiki\Specials\SpecialUpload::$mDesiredDestName

The requested target file name.

Definition at line 128 of file SpecialUpload.php.

◆ $mDestWarningAck

string MediaWiki\Specials\SpecialUpload::$mDestWarningAck

Definition at line 148 of file SpecialUpload.php.

◆ $mForReUpload

bool MediaWiki\Specials\SpecialUpload::$mForReUpload

The user followed an "overwrite this file" link.

Definition at line 151 of file SpecialUpload.php.

◆ $mIgnoreWarning

bool MediaWiki\Specials\SpecialUpload::$mIgnoreWarning

Definition at line 137 of file SpecialUpload.php.

◆ $mLicense

string MediaWiki\Specials\SpecialUpload::$mLicense

Definition at line 132 of file SpecialUpload.php.

◆ $mLocalFile

LocalFile MediaWiki\Specials\SpecialUpload::$mLocalFile

Definition at line 121 of file SpecialUpload.php.

◆ $mRequest

WebRequest FauxRequest MediaWiki\Specials\SpecialUpload::$mRequest

The request this form is supposed to handle.

Definition at line 110 of file SpecialUpload.php.

◆ $mSourceType

string MediaWiki\Specials\SpecialUpload::$mSourceType

Definition at line 112 of file SpecialUpload.php.

◆ $mTokenOk

bool MediaWiki\Specials\SpecialUpload::$mTokenOk

Definition at line 156 of file SpecialUpload.php.

◆ $mUpload

UploadBase MediaWiki\Specials\SpecialUpload::$mUpload

Definition at line 118 of file SpecialUpload.php.

◆ $mUploadClicked

bool MediaWiki\Specials\SpecialUpload::$mUploadClicked

Definition at line 123 of file SpecialUpload.php.

◆ $mUploadSuccessful

bool MediaWiki\Specials\SpecialUpload::$mUploadSuccessful = false

Subclasses can use this to determine whether a file was uploaded.

Definition at line 159 of file SpecialUpload.php.

◆ $mWatchthis

bool MediaWiki\Specials\SpecialUpload::$mWatchthis

Definition at line 139 of file SpecialUpload.php.

◆ $uploadFormTextAfterSummary

string MediaWiki\Specials\SpecialUpload::$uploadFormTextAfterSummary

Raw html injection point for hooks not using HTMLForm.

Definition at line 164 of file SpecialUpload.php.

◆ $uploadFormTextTop

string MediaWiki\Specials\SpecialUpload::$uploadFormTextTop

Raw html injection point for hooks not using HTMLForm.

Definition at line 162 of file SpecialUpload.php.


The documentation for this class was generated from the following file: