MediaWiki master
UploadFromChunks Class Reference

Implements uploading from chunks. More...

Inherits UploadFromFile.

Collaboration diagram for UploadFromChunks:

Public Member Functions

 __construct (User $user, $stash=false, $repo=false)
 @noinspection PhpMissingParentConstructorInspection
 
 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 to.
 
 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

 
- Public Member Functions inherited from UploadFromFile
 getSourceType ()
 
 initialize ( $name, $webRequestUpload)
 Initialize from a filename and a MediaWiki\Request\WebRequestUpload.
 
 initializeFromRequest (&$request)
 
 verifyUpload ()
 
- Public Member Functions inherited from UploadBase
 __construct ()
 
 canFetchFile ()
 Perform checks to see if the file can be fetched.
 
 checkSvgScriptCallback ( $element, $attribs, $data=null)
 
 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 ( $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.
 
 verifyPermissions (Authority $performer)
 Alias for verifyTitlePermissions.
 
 verifyTitlePermissions (Authority $performer)
 Check whether the user can edit, upload and create the image.
 
 zipEntryCallback ( $entry)
 Callback for ZipDirectoryReader to detect Java class files.
 

Public Attributes

UploadStash $stash
 
User $user
 
- Public Attributes inherited from UploadBase
const EMPTY_FILE = 3
 
const FILE_TOO_LARGE = 12
 
const FILENAME_TOO_LONG = 14
 
const FILETYPE_BADTYPE = 9
 
const FILETYPE_MISSING = 8
 
const HOOK_ABORTED = 11
 
const ILLEGAL_FILENAME = 5
 
const MIN_LENGTH_PARTNAME = 4
 
const OK = 0
 
const OVERWRITE_EXISTING_FILE = 7
 
const SUCCESS = 0
 
const VERIFICATION_ERROR = 10
 
const WINDOWS_NONASCII_FILENAME = 13
 

Protected Member Functions

 doStashFile (User $user=null)
 Calls the parent doStashFile and updates the uploadsession table to handle "chunks".
 
- Protected Member Functions inherited from UploadBase
 detectScriptInSvg ( $filename, $partial)
 
 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

 $mChunkIndex
 
 $mFileKey
 
 $mOffset
 
 $mVirtualTempPath
 
- Protected Attributes inherited from UploadFromFile
WebRequestUpload $mUpload = null
 
- Protected Attributes inherited from UploadBase
string[] $mBlackListedExtensions
 
string null $mDesiredDestName
 
string null $mDestName
 
array null $mFileProps
 
int null $mFileSize
 
string null $mFilteredName
 
string null $mFinalExtension
 
bool null $mJavaDetected
 
LocalFile null $mLocalFile
 
bool null $mRemoveTempFile
 
string null $mSourceType
 
UploadStashFile null $mStashFile
 
string false $mSVGNSError
 
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 UploadFromFile
static isValidRequest ( $request)
 
- Static Public Member Functions inherited from 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 checkSvgExternalDTD ( $type, $publicId, $systemId)
 Verify that DTD URLs referenced are only the standard DTDs.
 
static checkSvgPICallback ( $target, $data)
 Callback to filter SVG Processing Instructions.
 
static checkXMLEncodingMissmatch ( $file)
 Check an allowed list of xml encodings that are known not to be interpreted differently by the server's xml parser (expat) and some common browsers.
 
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.
 
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.
 
- Static Protected Attributes inherited from UploadBase
static $safeXmlEncodings
 

Detailed Description

Implements uploading from chunks.

Author
Michael Dale

Definition at line 38 of file UploadFromChunks.php.

Constructor & Destructor Documentation

◆ __construct()

UploadFromChunks::__construct ( User  $user,
  $stash = false,
  $repo = false 
)

@noinspection PhpMissingParentConstructorInspection

Setup local pointers to stash, repo and user (similar to UploadFromStash)

Parameters
User$user
UploadStash | false$stashDefault: false
FileRepo | false$repoDefault: false

Definition at line 62 of file UploadFromChunks.php.

References $stash, $user, MediaWiki\User\User\getId(), and wfDebug().

Member Function Documentation

◆ addChunk()

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 ( mutch match database chunk offset )
Returns
Status

Definition at line 308 of file UploadFromChunks.php.

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

◆ concatenateChunks()

UploadFromChunks::concatenateChunks ( )

◆ continueChunks()

UploadFromChunks::continueChunks (   $name,
  $key,
  $webRequestUpload 
)

Continue chunk uploading.

Parameters
string$name
string$key
WebRequestUpload$webRequestUpload

Definition at line 127 of file UploadFromChunks.php.

References UploadBase\getRealPath(), and UploadBase\initializePathInfo().

◆ doStashFile()

UploadFromChunks::doStashFile ( User  $user = null)
protected

Calls the parent doStashFile and updates the uploadsession table to handle "chunks".

Parameters
User | null$user
Returns
UploadStashFile Stashed file

Reimplemented from UploadBase.

Definition at line 100 of file UploadFromChunks.php.

References UploadBase\$mStashFile, and $user.

◆ getOffset()

UploadFromChunks::getOffset ( )

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

Returns
int Current byte offset of the chunk file set

Definition at line 413 of file UploadFromChunks.php.

References $mOffset.

Referenced by addChunk(), and concatenateChunks().

◆ tryStashFile()

UploadFromChunks::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 from UploadBase.

Definition at line 84 of file UploadFromChunks.php.

References $user.

Member Data Documentation

◆ $mChunkIndex

UploadFromChunks::$mChunkIndex
protected

Definition at line 47 of file UploadFromChunks.php.

◆ $mFileKey

UploadFromChunks::$mFileKey
protected

Definition at line 48 of file UploadFromChunks.php.

Referenced by concatenateChunks().

◆ $mOffset

UploadFromChunks::$mOffset
protected

Definition at line 46 of file UploadFromChunks.php.

Referenced by getOffset().

◆ $mVirtualTempPath

UploadFromChunks::$mVirtualTempPath
protected

Definition at line 49 of file UploadFromChunks.php.

◆ $stash

UploadStash UploadFromChunks::$stash

Definition at line 42 of file UploadFromChunks.php.

Referenced by __construct().

◆ $user

User UploadFromChunks::$user

Definition at line 44 of file UploadFromChunks.php.

Referenced by __construct(), doStashFile(), and tryStashFile().


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