MediaWiki master
MediaWiki\Upload\UploadBase Class Reference

UploadBase and subclasses are the backend of MediaWiki's file uploads. More...

Inherited by MediaWiki\Upload\UploadFromFile, MediaWiki\Upload\UploadFromStash, and MediaWiki\Upload\UploadFromUrl.

Collaboration diagram for MediaWiki\Upload\UploadBase:

Public Member Functions

 __construct ()
 
 authorizeUpload (Authority $performer)
 Check whether the user can upload the image.
 
 canFetchFile ()
 Perform checks to see if the file can be fetched.
 
 checkWarnings ( $user=null)
 Check for non fatal problems with the file.
 
 cleanupTempFile ()
 If we've modified the upload file, then we need to manually remove it on exit to clean up.
 
 convertVerifyErrorToStatus (array $error)
 
 fetchFile ()
 Fetch the file.
 
 getDesiredDestName ()
 Get the desired destination name.
 
 getFileSize ()
 Return the file size.
 
 getImageInfo ( $result=null)
 Gets image info about the file just uploaded.
 
 getLocalFile ()
 Return the local file and initializes if necessary.
 
 getRealPath ( $srcPath)
 
 getSourceType ()
 Returns the upload type.
 
 getStashFile ()
 
 getTempFileSha1Base36 ()
 Get the base 36 SHA1 of the file.
 
 getTempPath ()
 
 getTitle ()
 Returns the title of the file to be uploaded.
 
 getVerificationErrorCode ( $error)
 
 initializeFromRequest (&$request)
 Initialize from a WebRequest.
 
 initializePathInfo ( $name, $tempPath, $fileSize, $removeTempFile=false)
 
 isEmptyFile ()
 Return true if the file is empty.
 
 performUpload ( $comment, $pageText, $watch, $user, $tags=[], ?string $watchlistExpiry=null)
 Really perform the upload.
 
 postProcessUpload ()
 Perform extra steps after a successful upload.
 
 skipStashFileAttempt ()
 Check, if stash file attempt should be skipped, for example when the file is already known to stash.
 
 tryStashFile (User $user, $isPartial=false)
 Like stashFile(), but respects extensions' wishes to prevent the stashing.
 
 validateName ()
 Verify that the name is valid and, if necessary, that we can overwrite.
 
 verifyUpload ()
 Verify whether the upload is sensible.
 

Static Public Member Functions

static checkFileExtension ( $ext, $list)
 Perform case-insensitive match against a list of file extensions.
 
static checkFileExtensionList ( $ext, $list)
 Perform case-insensitive match against a list of file extensions.
 
static createFromRequest (&$request, $type=null)
 Create a form of UploadBase depending on wpSourceType and initializes it.
 
static detectScript ( $file, $mime, $extension)
 Heuristic for detecting files that could contain JavaScript instructions or things that may look like HTML to a browser and are thus potentially harmful.
 
static detectVirus ( $file)
 Generic wrapper function for a virus scanner program.
 
static getExistsWarning ( $file)
 Helper function that does various existence checks for a file.
 
static getFilenamePrefixBlacklist ()
 Get a list of disallowed filename prefixes from [[MediaWiki:Filename-prefix-blacklist]].
 
static getMaxPhpUploadSize ()
 Get the PHP maximum uploaded file size, based on ini settings.
 
static getMaxUploadSize ( $forType=null)
 Get MediaWiki's maximum uploaded file size for a given type of upload, based on $wgMaxUploadSize.
 
static getSessionStatus (UserIdentity $user, $statusKey)
 Get the current status of a chunked upload (used for polling).
 
static isAllowed (Authority $performer)
 Returns true if the user can use this upload module or else a string identifying the missing permission.
 
static isEnabled ()
 Returns true if uploads are enabled.
 
static isThrottled ( $user)
 Returns true if the user has surpassed the upload rate limit, false otherwise.
 
static isThumbName ( $filename)
 Helper function that checks whether the filename looks like a thumbnail.
 
static isValidRequest ( $request)
 Check whether a request if valid for this handler.
 
static makeWarningsSerializable ( $warnings)
 Convert the warnings array returned by checkWarnings() to something that can be serialized, and that is suitable for inclusion directly in action API results.
 
static setSessionStatus (UserIdentity $user, $statusKey, $value)
 Set the current status of a chunked upload (used for polling).
 
static splitExtensions ( $filename)
 Split a file into a base name and all dot-delimited 'extensions' on the end.
 
static unserializeWarnings ( $warnings)
 Convert the serialized warnings array created by makeWarningsSerializable() back to the output of checkWarnings().
 
static userCanReUpload (Authority $performer, File $img)
 Check if a user is the last uploader.
 
static verifyExtension ( $mime, $extension)
 Checks if the MIME type of the uploaded file matches the file extension.
 

Public Attributes

const EMPTY_FILE = 3
 
const FILE_TOO_LARGE = 12
 
const FILENAME_TOO_LONG = 14
 
const FILETYPE_BADTYPE = 9
 
const FILETYPE_MISSING = 8
 
const ILLEGAL_FILENAME = 5
 
const MIN_LENGTH_PARTNAME = 4
 
const OK = 0
 
const SUCCESS = 0
 
const VERIFICATION_ERROR = 10
 
const WINDOWS_NONASCII_FILENAME = 13
 

Protected Member Functions

 doStashFile (?User $user=null)
 Implementation for stashFile() and tryStashFile().
 
 getFileProps ()
 File props is very expensive on large files (due to sha1 calc) so it is important we save the result to reuse.
 
 runUploadStashFileHook (User $user)
 
 setTempFile ( $tempPath, $fileSize=null)
 
 verifyFile ()
 Verifies that it's ok to include the uploaded file.
 
 verifyMimeType ( $mime)
 Verify the MIME type.
 
 verifyPartialFile ()
 A verification routine suitable for partial files.
 

Protected Attributes

string[] $mBlackListedExtensions
 
string null $mDesiredDestName
 
string null $mDestName
 
array null $mFileProps
 
int null $mFileSize
 
string null $mFilteredName
 
string null $mFinalExtension
 
LocalFile null $mLocalFile
 
bool null $mRemoveTempFile
 
string null $mSourceType
 
UploadStashFile null $mStashFile
 
string null $mTempPath
 Local file system path to the file to upload (or a local copy)
 
Title false null $mTitle = false
 
int $mTitleError = 0
 
TempFSFile null $tempFileObj
 Wrapper to handle deleting the temp file.
 

Detailed Description

UploadBase and subclasses are the backend of MediaWiki's file uploads.

The frontends are formed by ApiUpload and SpecialUpload.

Stability: stable
to extend
Author
Brooke Vibber
Bryan Tong Minh
Michael Dale

Definition at line 62 of file UploadBase.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Upload\UploadBase::__construct ( )
Stability: stable
to call

Definition at line 244 of file UploadBase.php.

References MediaWiki\MediaWikiServices\getInstance().

Member Function Documentation

◆ authorizeUpload()

MediaWiki\Upload\UploadBase::authorizeUpload ( Authority $performer)

Check whether the user can upload the image.

This method checks against the current title. Use verifyUpload() or validateName() first to check that the title is valid.

Definition at line 551 of file UploadBase.php.

◆ canFetchFile()

MediaWiki\Upload\UploadBase::canFetchFile ( )

Perform checks to see if the file can be fetched.

Usually a no-op.

Stability: stable
to override
Returns
Status

Reimplemented in MediaWiki\Upload\UploadFromUrl.

Definition at line 314 of file UploadBase.php.

◆ checkFileExtension()

static MediaWiki\Upload\UploadBase::checkFileExtension ( $ext,
$list )
static

Perform case-insensitive match against a list of file extensions.

Parameters
string$extFile extension
array$list
Returns
bool Returns true if the extension is in the list.

Definition at line 1186 of file UploadBase.php.

◆ checkFileExtensionList()

static MediaWiki\Upload\UploadBase::checkFileExtensionList ( $ext,
$list )
static

Perform case-insensitive match against a list of file extensions.

Returns an array of matching extensions.

Parameters
string[]$extFile extensions
string[]$list
Returns
string[]

Definition at line 1198 of file UploadBase.php.

◆ checkWarnings()

MediaWiki\Upload\UploadBase::checkWarnings ( $user = null)

Check for non fatal problems with the file.

This should not assume that mTempPath is set.

Parameters
User | null$userAccepted since 1.35
Returns
mixed[] Array of warnings

Definition at line 583 of file UploadBase.php.

Referenced by MediaWiki\JobQueue\Jobs\AssembleUploadChunksJob\run().

◆ cleanupTempFile()

MediaWiki\Upload\UploadBase::cleanupTempFile ( )

If we've modified the upload file, then we need to manually remove it on exit to clean up.

Definition at line 1148 of file UploadBase.php.

References wfDebug().

Referenced by MediaWiki\JobQueue\Jobs\AssembleUploadChunksJob\run().

◆ convertVerifyErrorToStatus()

MediaWiki\Upload\UploadBase::convertVerifyErrorToStatus ( array $error)

◆ createFromRequest()

static MediaWiki\Upload\UploadBase::createFromRequest ( & $request,
$type = null )
static

Create a form of UploadBase depending on wpSourceType and initializes it.

Parameters
WebRequest&$request
string | null$type
Returns
null|self

Definition at line 187 of file UploadBase.php.

References MediaWiki\MediaWikiServices\getInstance(), and wfDebug().

◆ detectScript()

static MediaWiki\Upload\UploadBase::detectScript ( $file,
$mime,
$extension )
static

Heuristic for detecting files that could contain JavaScript instructions or things that may look like HTML to a browser and are thus potentially harmful.

The present implementation will produce false positives in some situations.

Warning
This only does some of the checks and should not be used to verify files by itself.
Deprecated
1.45 use UploadVerification::verifyFile() instead
Parameters
string | null$filePathname to the temporary upload file
string$mimeThe MIME type of the file
string | null$extensionThe extension of the file
Returns
bool True if the file contains something looking like embedded scripts

Definition at line 1231 of file UploadBase.php.

References wfDeprecated().

◆ detectVirus()

static MediaWiki\Upload\UploadBase::detectVirus ( $file)
static

Generic wrapper function for a virus scanner program.

This relies on the $wgAntivirus and $wgAntivirusSetup variables. $wgAntivirusRequired may be used to deny upload if the scan fails.

Parameters
string$filePathname to the temporary upload file
Returns
bool|null|string False if not virus is found, null if the scan fails or is disabled, or a string containing feedback from the virus scanner if a virus was found. If textual feedback is missing but a virus was found, this function returns true.
Deprecated
1.45 Use UploadVerification->detectVirus() directly.

Definition at line 1250 of file UploadBase.php.

References MediaWiki\Upload\UploadVerification\detectVirus(), and wfDeprecated().

◆ doStashFile()

MediaWiki\Upload\UploadBase::doStashFile ( ?User $user = null)
protected

Implementation for stashFile() and tryStashFile().

Stability: stable
to override
Parameters
User | null$user
Returns
UploadStashFile Stashed file

Reimplemented in MediaWiki\Upload\UploadFromChunks.

Definition at line 1135 of file UploadBase.php.

◆ fetchFile()

MediaWiki\Upload\UploadBase::fetchFile ( )

Fetch the file.

Usually a no-op.

Stability: stable
to override
Returns
Status

Definition at line 305 of file UploadBase.php.

◆ getDesiredDestName()

MediaWiki\Upload\UploadBase::getDesiredDestName ( )

Get the desired destination name.

Returns
string|null

Definition at line 237 of file UploadBase.php.

References MediaWiki\Upload\UploadBase\$mDesiredDestName.

◆ getExistsWarning()

static MediaWiki\Upload\UploadBase::getExistsWarning ( $file)
static

Helper function that does various existence checks for a file.

The following checks are performed:

  • If the file exists
  • If an article with the same name as the file exists
  • If a file exists with normalized extension
  • If the file looks like a thumbnail and the original exists
Parameters
File$fileThe File object to check
Returns
array|false False if the file does not exist, else an array

Definition at line 1324 of file UploadBase.php.

References NS_FILE.

◆ getFilenamePrefixBlacklist()

static MediaWiki\Upload\UploadBase::getFilenamePrefixBlacklist ( )
static

Get a list of disallowed filename prefixes from [[MediaWiki:Filename-prefix-blacklist]].

Returns
string[] List of prefixes

Definition at line 1428 of file UploadBase.php.

References wfMessage().

◆ getFileProps()

MediaWiki\Upload\UploadBase::getFileProps ( )
protected

File props is very expensive on large files (due to sha1 calc) so it is important we save the result to reuse.

Returns
array List of file properties

Definition at line 517 of file UploadBase.php.

References MediaWiki\MediaWikiServices\getInstance().

Referenced by MediaWiki\Upload\UploadBase\verifyFile().

◆ getFileSize()

MediaWiki\Upload\UploadBase::getFileSize ( )

Return the file size.

Returns
int

Definition at line 330 of file UploadBase.php.

References MediaWiki\Upload\UploadBase\$mFileSize.

◆ getImageInfo()

MediaWiki\Upload\UploadBase::getImageInfo ( $result = null)

Gets image info about the file just uploaded.

Deprecated
since 1.42, subclasses of ApiUpload can use ApiUpload::getUploadImageInfo() instead.
Parameters
?ApiResult$resultunused since 1.42
Returns
array Image info

Definition at line 1460 of file UploadBase.php.

◆ getLocalFile()

MediaWiki\Upload\UploadBase::getLocalFile ( )

Return the local file and initializes if necessary.

Stability: stable
to override
Returns
LocalFile|null

Definition at line 1058 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\validateName().

◆ getMaxPhpUploadSize()

static MediaWiki\Upload\UploadBase::getMaxPhpUploadSize ( )
static

Get the PHP maximum uploaded file size, based on ini settings.

If there is no limit or the limit can't be guessed, return a very large number (PHP_INT_MAX) instead.

Since
1.27
Returns
int

Definition at line 1573 of file UploadBase.php.

References wfShorthandToInteger().

◆ getMaxUploadSize()

static MediaWiki\Upload\UploadBase::getMaxUploadSize ( $forType = null)
static

Get MediaWiki's maximum uploaded file size for a given type of upload, based on $wgMaxUploadSize.

Parameters
null | string$forType
Returns
int

Definition at line 1557 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadFromChunks\addChunk(), and MediaWiki\Upload\UploadBase\verifyUpload().

◆ getRealPath()

MediaWiki\Upload\UploadBase::getRealPath ( $srcPath)
Parameters
string$srcPathThe source path
Returns
string|false The real path if it was a virtual URL Returns false on failure

Definition at line 351 of file UploadBase.php.

References $path, and MediaWiki\MediaWikiServices\getInstance().

Referenced by MediaWiki\Upload\UploadFromChunks\continueChunks(), and MediaWiki\Upload\UploadFromStash\initialize().

◆ getSessionStatus()

static MediaWiki\Upload\UploadBase::getSessionStatus ( UserIdentity $user,
$statusKey )
static

Get the current status of a chunked upload (used for polling).

This should only be called during POST requests since we fetch from dc-local MainStash, and from a GET request we can't know that the value is available or up-to-date.

Parameters
UserIdentity$user
string$statusKey
Returns
mixed[]|false

Definition at line 1596 of file UploadBase.php.

◆ getSourceType()

MediaWiki\Upload\UploadBase::getSourceType ( )

Returns the upload type.

Should be overridden by child classes.

Since
1.18
Stability: stable
to override
Returns
string|null

Reimplemented in MediaWiki\Upload\UploadFromFile, MediaWiki\Upload\UploadFromStash, and MediaWiki\Upload\UploadFromUrl.

Definition at line 255 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\verifyUpload().

◆ getStashFile()

MediaWiki\Upload\UploadBase::getStashFile ( )
Returns
UploadStashFile|null

Definition at line 1072 of file UploadBase.php.

Referenced by MediaWiki\JobQueue\Jobs\AssembleUploadChunksJob\run().

◆ getTempFileSha1Base36()

MediaWiki\Upload\UploadBase::getTempFileSha1Base36 ( )

Get the base 36 SHA1 of the file.

Stability: stable
to override
Returns
string|false

Reimplemented in MediaWiki\Upload\UploadFromStash.

Definition at line 339 of file UploadBase.php.

◆ getTempPath()

MediaWiki\Upload\UploadBase::getTempPath ( )
Returns
string|null

Definition at line 1159 of file UploadBase.php.

◆ getTitle()

MediaWiki\Upload\UploadBase::getTitle ( )

Returns the title of the file to be uploaded.

Sets mTitleError in case the name was illegal.

Returns
Title|null The title of the file or null in case the name was illegal

Definition at line 915 of file UploadBase.php.

References NS_FILE, and wfStripIllegalFilenameChars().

Referenced by MediaWiki\Upload\UploadBase\validateName().

◆ getVerificationErrorCode()

MediaWiki\Upload\UploadBase::getVerificationErrorCode ( $error)
Parameters
int$error
Returns
string

Definition at line 132 of file UploadBase.php.

◆ initializeFromRequest()

MediaWiki\Upload\UploadBase::initializeFromRequest ( & $request)
abstract

Initialize from a WebRequest.

Override this in a subclass.

Parameters
WebRequest&$request

Reimplemented in MediaWiki\Upload\UploadFromFile, MediaWiki\Upload\UploadFromStash, and MediaWiki\Upload\UploadFromUrl.

◆ initializePathInfo()

MediaWiki\Upload\UploadBase::initializePathInfo ( $name,
$tempPath,
$fileSize,
$removeTempFile = false )
Parameters
string$nameThe desired destination name
string | null$tempPathCallers should make sure this is not a storage path
int | null$fileSize
bool$removeTempFile(false) remove the temporary file?

Definition at line 265 of file UploadBase.php.

References Wikimedia\FileBackend\FileBackend\isStoragePath(), and MediaWiki\Upload\UploadBase\setTempFile().

Referenced by MediaWiki\Upload\UploadFromChunks\continueChunks(), MediaWiki\Upload\UploadFromStash\initialize(), and MediaWiki\Upload\UploadFromFile\initialize().

◆ isAllowed()

static MediaWiki\Upload\UploadBase::isAllowed ( Authority $performer)
static

Returns true if the user can use this upload module or else a string identifying the missing permission.

Can be overridden by subclasses.

Parameters
Authority$performer
Returns
bool|string

Reimplemented in MediaWiki\Upload\UploadFromUrl.

Definition at line 156 of file UploadBase.php.

References MediaWiki\Permissions\Authority\isAllowed().

◆ isEmptyFile()

MediaWiki\Upload\UploadBase::isEmptyFile ( )

Return true if the file is empty.

Returns
bool

Definition at line 322 of file UploadBase.php.

References MediaWiki\Upload\UploadBase\$mFileSize.

Referenced by MediaWiki\Upload\UploadBase\verifyUpload().

◆ isEnabled()

static MediaWiki\Upload\UploadBase::isEnabled ( )
static

Returns true if uploads are enabled.

Can be override by subclasses.

Stability: stable
to override
Returns
bool

Reimplemented in MediaWiki\Upload\UploadFromUrl.

Definition at line 142 of file UploadBase.php.

References MediaWiki\MainConfigNames\EnableUploads, MediaWiki\MediaWikiServices\getInstance(), and wfIniGetBool().

◆ isThrottled()

static MediaWiki\Upload\UploadBase::isThrottled ( $user)
static

Returns true if the user has surpassed the upload rate limit, false otherwise.

Deprecated
since 1.41, use authorizeUpload() instead. Rate limit checks are now implicit in permission checks.
Parameters
User$user
Returns
bool

Definition at line 175 of file UploadBase.php.

References wfDeprecated().

◆ isThumbName()

static MediaWiki\Upload\UploadBase::isThumbName ( $filename)
static

Helper function that checks whether the filename looks like a thumbnail.

Parameters
string$filename
Returns
bool

Definition at line 1413 of file UploadBase.php.

◆ isValidRequest()

static MediaWiki\Upload\UploadBase::isValidRequest ( $request)
static

Check whether a request if valid for this handler.

Parameters
WebRequest$request
Returns
bool

Reimplemented in MediaWiki\Upload\UploadFromFile, MediaWiki\Upload\UploadFromStash, and MediaWiki\Upload\UploadFromUrl.

Definition at line 229 of file UploadBase.php.

◆ makeWarningsSerializable()

static MediaWiki\Upload\UploadBase::makeWarningsSerializable ( $warnings)
static

Convert the warnings array returned by checkWarnings() to something that can be serialized, and that is suitable for inclusion directly in action API results.

File objects will be converted to an associative array with the following keys:

  • fileName: The name of the file
  • timestamp: The upload timestamp
Parameters
mixed[]$warnings
Returns
mixed[]

Definition at line 648 of file UploadBase.php.

◆ performUpload()

MediaWiki\Upload\UploadBase::performUpload ( $comment,
$pageText,
$watch,
$user,
$tags = [],
?string $watchlistExpiry = null )

Really perform the upload.

Stores the file in the local repo, watches if necessary and runs the UploadComplete hook.

Parameters
string$comment
string | false$pageText
bool$watchWhether the file page should be added to user's watchlist. (This doesn't check $user's permissions.)
User$user
string[]$tagsChange tags to add to the log entry and page revision. (This doesn't check $user's permissions.)
string | null$watchlistExpiryOptional watchlist expiry timestamp in any format acceptable to wfTimestamp().
Returns
Status Indicating the whether the upload succeeded.
Since
1.35 Accepts $watchlistExpiry parameter.

Definition at line 858 of file UploadBase.php.

◆ postProcessUpload()

MediaWiki\Upload\UploadBase::postProcessUpload ( )

Perform extra steps after a successful upload.

Stability: stable
to override
Since
1.25

Reimplemented in MediaWiki\Upload\UploadFromStash.

Definition at line 906 of file UploadBase.php.

◆ runUploadStashFileHook()

MediaWiki\Upload\UploadBase::runUploadStashFileHook ( User $user)
protected
Parameters
User$user
Returns
array|null Error message and parameters, null if there's no error

Definition at line 1118 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadFromChunks\concatenateChunks().

◆ setSessionStatus()

static MediaWiki\Upload\UploadBase::setSessionStatus ( UserIdentity $user,
$statusKey,
$value )
static

Set the current status of a chunked upload (used for polling).

The value will be set in cache for 1 day.

This should only be called during POST requests.

Parameters
UserIdentity$user
string$statusKey
array | false$value
Returns
void

Definition at line 1615 of file UploadBase.php.

References MediaWiki\User\UserIdentity\getName().

◆ setTempFile()

MediaWiki\Upload\UploadBase::setTempFile ( $tempPath,
$fileSize = null )
protected
Parameters
string | null$tempPathFile system path to temporary file containing the upload
int | null$fileSize

Definition at line 286 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadFromChunks\concatenateChunks(), and MediaWiki\Upload\UploadBase\initializePathInfo().

◆ skipStashFileAttempt()

MediaWiki\Upload\UploadBase::skipStashFileAttempt ( )

Check, if stash file attempt should be skipped, for example when the file is already known to stash.

Since
1.46
Stability: stable
to override

Reimplemented in MediaWiki\Upload\UploadFromFile.

Definition at line 1110 of file UploadBase.php.

◆ splitExtensions()

static MediaWiki\Upload\UploadBase::splitExtensions ( $filename)
static

Split a file into a base name and all dot-delimited 'extensions' on the end.

Some web server configurations will fall back to earlier pseudo-'extensions' to determine type and execute scripts, so we need to check them all.

Parameters
string$filename
Returns
array [ string, string[] ]

Definition at line 1172 of file UploadBase.php.

◆ tryStashFile()

MediaWiki\Upload\UploadBase::tryStashFile ( User $user,
$isPartial = false )

Like stashFile(), but respects extensions' wishes to prevent the stashing.

verifyUpload() must be called before calling this method (unless $isPartial is true).

Upload stash exceptions are also caught and converted to an error status.

Since
1.28
Stability: stable
to override
Parameters
User$user
bool$isPartialPass true if this is a part of a chunked upload (not a complete file).
Returns
Status If successful, value is an UploadStashFile instance

Reimplemented in MediaWiki\Upload\UploadFromChunks.

Definition at line 1088 of file UploadBase.php.

◆ unserializeWarnings()

static MediaWiki\Upload\UploadBase::unserializeWarnings ( $warnings)
static

Convert the serialized warnings array created by makeWarningsSerializable() back to the output of checkWarnings().

Parameters
mixed[]$warnings
Returns
mixed[]

Definition at line 673 of file UploadBase.php.

◆ userCanReUpload()

static MediaWiki\Upload\UploadBase::userCanReUpload ( Authority $performer,
File $img )
static

Check if a user is the last uploader.

Parameters
Authority$performer
File$img
Returns
bool

Definition at line 1297 of file UploadBase.php.

References MediaWiki\FileRepo\File\File\getUploader(), MediaWiki\Permissions\Authority\getUser(), and MediaWiki\Permissions\Authority\isAllowed().

◆ validateName()

MediaWiki\Upload\UploadBase::validateName ( )

Verify that the name is valid and, if necessary, that we can overwrite.

Returns
array|bool True if valid, otherwise an array with 'status' and other keys

Definition at line 435 of file UploadBase.php.

References MediaWiki\Upload\UploadBase\$mBlackListedExtensions, MediaWiki\Upload\UploadBase\$mFilteredName, MediaWiki\Upload\UploadBase\$mFinalExtension, MediaWiki\Upload\UploadBase\$mTitleError, MediaWiki\Upload\UploadBase\getLocalFile(), and MediaWiki\Upload\UploadBase\getTitle().

Referenced by MediaWiki\Upload\UploadBase\verifyUpload().

◆ verifyExtension()

static MediaWiki\Upload\UploadBase::verifyExtension ( $mime,
$extension )
static

Checks if the MIME type of the uploaded file matches the file extension.

Deprecated
1.45
Parameters
string$mimeThe MIME type of the uploaded file
string$extensionThe filename extension that the file is to be served with
Returns
bool

Definition at line 1210 of file UploadBase.php.

References wfDeprecated().

◆ verifyFile()

MediaWiki\Upload\UploadBase::verifyFile ( )
protected

Verifies that it's ok to include the uploaded file.

Returns
array|true True of the file is verified, array otherwise.

Definition at line 483 of file UploadBase.php.

References MediaWiki\Upload\UploadBase\getFileProps(), and MediaWiki\Upload\UploadBase\verifyPartialFile().

Referenced by MediaWiki\Upload\UploadBase\verifyUpload().

◆ verifyMimeType()

MediaWiki\Upload\UploadBase::verifyMimeType ( $mime)
protected

Verify the MIME type.

Note
Only checks that it is not an evil MIME. The "does it have the correct file extension given its MIME type?" check is in verifyFile.
Parameters
string$mimeRepresenting the MIME
Returns
array|bool True if the file is verified, an array otherwise

Definition at line 464 of file UploadBase.php.

References MediaWiki\MediaWikiServices\getInstance(), MediaWiki\MainConfigNames\MimeTypeExclusions, MediaWiki\MainConfigNames\VerifyMimeType, and wfDebug().

◆ verifyPartialFile()

MediaWiki\Upload\UploadBase::verifyPartialFile ( )
protected

A verification routine suitable for partial files.

Runs the deny list checks, but not any checks that may assume the entire file is present.

Returns
array|true True, if the file is valid, else an array with error message key.

Definition at line 537 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\verifyFile().

◆ verifyUpload()

MediaWiki\Upload\UploadBase::verifyUpload ( )

Verify whether the upload is sensible.

Return a status array representing the outcome of the verification. Possible keys are:

  • 'status': set to self::OK in case of success, or to one of the error constants defined in this class in case of failure
  • 'max': set to the maximum allowed file size ($wgMaxUploadSize) if the upload is too large
  • 'details': set to error details if the file type is valid but contents are corrupt
  • 'filtered': set to the sanitized file name if the requested file name is invalid
  • 'finalExt': set to the file's file extension if it is not an allowed file extension
  • 'blacklistedExt': set to the list of disallowed file extensions if the current file extension is not allowed for uploads and the list is not empty
Stability: stable
to override
Returns
mixed[] array representing the result of the verification

Reimplemented in MediaWiki\Upload\UploadFromFile.

Definition at line 386 of file UploadBase.php.

References MediaWiki\Upload\UploadBase\EMPTY_FILE, MediaWiki\Upload\UploadBase\FILE_TOO_LARGE, MediaWiki\Upload\UploadBase\getMaxUploadSize(), MediaWiki\Upload\UploadBase\getSourceType(), MediaWiki\Upload\UploadBase\isEmptyFile(), MediaWiki\Upload\UploadBase\OK, MediaWiki\Upload\UploadBase\validateName(), MediaWiki\Upload\UploadBase\VERIFICATION_ERROR, and MediaWiki\Upload\UploadBase\verifyFile().

Member Data Documentation

◆ $mBlackListedExtensions

string [] MediaWiki\Upload\UploadBase::$mBlackListedExtensions
protected

Definition at line 94 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\validateName().

◆ $mDesiredDestName

string null MediaWiki\Upload\UploadBase::$mDesiredDestName
protected

Definition at line 70 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\getDesiredDestName().

◆ $mDestName

string null MediaWiki\Upload\UploadBase::$mDestName
protected

Definition at line 72 of file UploadBase.php.

◆ $mFileProps

array null MediaWiki\Upload\UploadBase::$mFileProps
protected

Definition at line 92 of file UploadBase.php.

◆ $mFileSize

int null MediaWiki\Upload\UploadBase::$mFileSize
protected

◆ $mFilteredName

string null MediaWiki\Upload\UploadBase::$mFilteredName
protected

Definition at line 82 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\validateName().

◆ $mFinalExtension

string null MediaWiki\Upload\UploadBase::$mFinalExtension
protected

Definition at line 84 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\validateName().

◆ $mLocalFile

LocalFile null MediaWiki\Upload\UploadBase::$mLocalFile
protected

Definition at line 86 of file UploadBase.php.

◆ $mRemoveTempFile

bool null MediaWiki\Upload\UploadBase::$mRemoveTempFile
protected

Definition at line 74 of file UploadBase.php.

◆ $mSourceType

string null MediaWiki\Upload\UploadBase::$mSourceType
protected

Definition at line 76 of file UploadBase.php.

◆ $mStashFile

UploadStashFile null MediaWiki\Upload\UploadBase::$mStashFile
protected

Definition at line 88 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadFromChunks\doStashFile().

◆ $mTempPath

string null MediaWiki\Upload\UploadBase::$mTempPath
protected

Local file system path to the file to upload (or a local copy)

Definition at line 66 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadFromChunks\addChunk().

◆ $mTitle

Title false null MediaWiki\Upload\UploadBase::$mTitle = false
protected

Definition at line 78 of file UploadBase.php.

◆ $mTitleError

int MediaWiki\Upload\UploadBase::$mTitleError = 0
protected

Definition at line 80 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\validateName().

◆ $tempFileObj

TempFSFile null MediaWiki\Upload\UploadBase::$tempFileObj
protected

Wrapper to handle deleting the temp file.

Definition at line 68 of file UploadBase.php.

◆ EMPTY_FILE

const MediaWiki\Upload\UploadBase::EMPTY_FILE = 3

Definition at line 100 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\verifyUpload().

◆ FILE_TOO_LARGE

const MediaWiki\Upload\UploadBase::FILE_TOO_LARGE = 12

◆ FILENAME_TOO_LONG

const MediaWiki\Upload\UploadBase::FILENAME_TOO_LONG = 14

Definition at line 108 of file UploadBase.php.

◆ FILETYPE_BADTYPE

const MediaWiki\Upload\UploadBase::FILETYPE_BADTYPE = 9

Definition at line 104 of file UploadBase.php.

◆ FILETYPE_MISSING

const MediaWiki\Upload\UploadBase::FILETYPE_MISSING = 8

Definition at line 103 of file UploadBase.php.

◆ ILLEGAL_FILENAME

const MediaWiki\Upload\UploadBase::ILLEGAL_FILENAME = 5

Definition at line 102 of file UploadBase.php.

◆ MIN_LENGTH_PARTNAME

const MediaWiki\Upload\UploadBase::MIN_LENGTH_PARTNAME = 4

Definition at line 101 of file UploadBase.php.

◆ OK

const MediaWiki\Upload\UploadBase::OK = 0

◆ SUCCESS

const MediaWiki\Upload\UploadBase::SUCCESS = 0

Definition at line 98 of file UploadBase.php.

◆ VERIFICATION_ERROR

const MediaWiki\Upload\UploadBase::VERIFICATION_ERROR = 10

Definition at line 105 of file UploadBase.php.

Referenced by MediaWiki\Upload\UploadBase\verifyUpload().

◆ WINDOWS_NONASCII_FILENAME

const MediaWiki\Upload\UploadBase::WINDOWS_NONASCII_FILENAME = 13

Definition at line 107 of file UploadBase.php.


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