MediaWiki master
MediaWiki\Upload\UploadFromChunks Class Reference

Implements uploading from chunks. More...

Inherits MediaWiki\Upload\UploadFromFile.

Collaboration diagram for MediaWiki\Upload\UploadFromChunks:

Public Member Functions

 __construct (User $user, $stash=false, $repo=false)
 
 addChunk ( $chunkPath, $chunkSize, $offset)
 Add a chunk to the temporary directory.
 
 concatenateChunks ()
 Append the final chunk and ready file for parent::performUpload()
 
 continueChunks ( $name, $key, $webRequestUpload)
 Continue chunk uploading.
 
 getOffset ()
 Get the offset at which the next uploaded chunk will be appended.
 
 tryStashFile (User $user, $isPartial=false)
 Attempt to temporarily stash the uploaded file for later resumption of the upload.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<UploadStashFile>

 
- Public Member Functions inherited from MediaWiki\Upload\UploadFromFile
 getSourceType ()
 
 initialize ( $name, $webRequestUpload)
 
 initializeFromRequest (&$request)
 
 skipStashFileAttempt ()
 Check, if stash file attempt should be skipped, for example when the file is already known to stash.
 
 verifyUpload ()
 
- Public Member Functions inherited from MediaWiki\Upload\UploadBase
 __construct ()
 
 authorizeUpload (Authority $performer)
 Check whether the user can upload the image.
 
 canFetchFile ()
 Perform checks to see if the file can be fetched.
 
 checkWarnings (Authority $performer)
 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)
 
 getStashFile ()
 
 getTempFileSha1Base36 ()
 Get the base 36 SHA1 of the file.
 
 getTempPath ()
 
 getTitle ()
 Returns the title of the file to be uploaded.
 
 getVerificationErrorCode ( $error)
 
 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.
 
 validateName ()
 Verify that the name is valid and, if necessary, that we can overwrite.
 

Public Attributes

UploadStash $stash
 
User $user
 
- Public Attributes inherited from MediaWiki\Upload\UploadBase
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)
 Call the parent doStashFile and update the uploadstash table.
 
- Protected Member Functions inherited from MediaWiki\Upload\UploadBase
 getFileProps ()
 File props is very expensive on large files (due to SHA-1 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

int null $mChunkIndex
 
string $mFileKey
 
int null $mOffset
 
string null $mVirtualTempPath
 
- Protected Attributes inherited from MediaWiki\Upload\UploadFromFile
WebRequestUpload $mUpload = null
 
- Protected Attributes inherited from MediaWiki\Upload\UploadBase
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.
 

Additional Inherited Members

- Static Public Member Functions inherited from MediaWiki\Upload\UploadFromFile
static isValidRequest ( $request)
 
- Static Public Member Functions inherited from MediaWiki\Upload\UploadBase
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 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.
 

Detailed Description

Implements uploading from chunks.

Author
Michael Dale

Definition at line 34 of file UploadFromChunks.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Upload\UploadFromChunks::__construct ( User $user,
$stash = false,
$repo = false )
Parameters
User$user
UploadStash | false$stashDefault: false
LocalRepo | false$repoDefault: false

Definition at line 58 of file UploadFromChunks.php.

References MediaWiki\Upload\UploadFromChunks\$stash, MediaWiki\Upload\UploadFromChunks\$user, MediaWiki\User\User\getId(), MediaWiki\MediaWikiServices\getInstance(), and wfDebug().

Member Function Documentation

◆ addChunk()

MediaWiki\Upload\UploadFromChunks::addChunk ( $chunkPath,
$chunkSize,
$offset )

Add a chunk to the temporary directory.

Parameters
string$chunkPathPath to temporary chunk file
int$chunkSizeSize of the current chunk
int$offsetOffset of current chunk (must match database chunk offset)
Returns
Status

Definition at line 300 of file UploadFromChunks.php.

References MediaWiki\Upload\UploadBase\$mTempPath, MediaWiki\Upload\UploadBase\getMaxUploadSize(), and MediaWiki\Upload\UploadFromChunks\getOffset().

◆ concatenateChunks()

◆ continueChunks()

MediaWiki\Upload\UploadFromChunks::continueChunks ( $name,
$key,
$webRequestUpload )

Continue chunk uploading.

Parameters
string$name
string$key
WebRequestUpload$webRequestUpload

Definition at line 120 of file UploadFromChunks.php.

References MediaWiki\Upload\UploadBase\getRealPath(), MediaWiki\Upload\UploadBase\initializePathInfo(), and wfMessage().

◆ doStashFile()

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

Call the parent doStashFile and update the uploadstash table.

Parameters
User | null$user
Returns
UploadStashFile Stashed file

Reimplemented from MediaWiki\Upload\UploadBase.

Definition at line 97 of file UploadFromChunks.php.

References MediaWiki\Upload\UploadBase\$mStashFile, and MediaWiki\Upload\UploadFromChunks\$user.

◆ getOffset()

MediaWiki\Upload\UploadFromChunks::getOffset ( )

Get the offset at which the next uploaded chunk will be appended.

Returns
int Current byte offset

Definition at line 400 of file UploadFromChunks.php.

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

◆ tryStashFile()

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

Attempt to temporarily stash the uploaded file for later resumption of the upload.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<UploadStashFile>

Reimplemented from MediaWiki\Upload\UploadBase.

Definition at line 81 of file UploadFromChunks.php.

References MediaWiki\Upload\UploadFromChunks\$user.

Member Data Documentation

◆ $mChunkIndex

int null MediaWiki\Upload\UploadFromChunks::$mChunkIndex
protected

Definition at line 45 of file UploadFromChunks.php.

◆ $mFileKey

string MediaWiki\Upload\UploadFromChunks::$mFileKey
protected

◆ $mOffset

int null MediaWiki\Upload\UploadFromChunks::$mOffset
protected

Definition at line 43 of file UploadFromChunks.php.

◆ $mVirtualTempPath

string null MediaWiki\Upload\UploadFromChunks::$mVirtualTempPath
protected

Definition at line 49 of file UploadFromChunks.php.

◆ $stash

UploadStash MediaWiki\Upload\UploadFromChunks::$stash

Definition at line 38 of file UploadFromChunks.php.

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

◆ $user


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