MediaWiki REL1_37
|
Implements uploading from chunks. More...
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.
| |||||||
Public Member Functions inherited from UploadFromFile | |||||||
getSourceType () | |||||||
initialize ( $name, $webRequestUpload) | |||||||
Initialize from a filename and a WebRequestUpload. | |||||||
initializeFromRequest (&$request) | |||||||
verifyUpload () | |||||||
Public Member Functions inherited from UploadBase | |||||||
__construct () | |||||||
checkSvgScriptCallback ( $element, $attribs, $data=null) | |||||||
checkWarnings ( $user=null) | |||||||
Check for non fatal problems with the file. | |||||||
cleanupTempFile () | |||||||
If we've modified the upload file we need to manually remove it on exit to clean up. | |||||||
convertVerifyErrorToStatus ( $error) | |||||||
fetchFile () | |||||||
Fetch the file. | |||||||
getFileSize () | |||||||
Return the file size. | |||||||
getImageInfo ( $result) | |||||||
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 null | $mSVGNSError |
string null | $mTempPath |
Local file system path to the file to upload (or a local copy) | |
Title bool | $mTitle = false |
int | $mTitleError = 0 |
TempFSFile null | $tempFileObj |
Wrapper to handle deleting the temp file. | |
Private Member Functions | |
getChunkFileKey ( $index=null) | |
getChunkIndex () | |
Get the current Chunk index. | |
getChunkStatus () | |
Get the chunk db state and populate update relevant local values. | |
getVirtualChunkLocation ( $index) | |
Returns the virtual chunk location: | |
outputChunk ( $chunkPath) | |
Output the chunk to disk. | |
updateChunkStatus () | |
Update the chunk db table with the current status: | |
verifyChunk () | |
Verify that the chunk isn't really an evil html file. | |
Private Attributes | |
LocalRepo | $repo |
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 a whitelist 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 blacklisted 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 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 | 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 |
Implements uploading from chunks.
Definition at line 33 of file UploadFromChunks.php.
UploadFromChunks::__construct | ( | User | $user, |
$stash = false , |
|||
$repo = false |
|||
) |
@noinspection PhpMissingParentConstructorInspection
Setup local pointers to stash, repo and user (similar to UploadFromStash)
User | $user | |
UploadStash | bool | $stash | Default: false |
FileRepo | bool | $repo | Default: false |
Definition at line 55 of file UploadFromChunks.php.
References $repo, $stash, $user, User\getId(), and wfDebug().
UploadFromChunks::addChunk | ( | $chunkPath, | |
$chunkSize, | |||
$offset | |||
) |
Add a chunk to the temporary directory.
string | $chunkPath | Path to temporary chunk file |
int | $chunkSize | Size of the current chunk |
int | $offset | Offset of current chunk ( mutch match database chunk offset ) |
Definition at line 227 of file UploadFromChunks.php.
References UploadBase\$mTempPath, UploadBase\getMaxUploadSize(), getOffset(), MWException\msg(), outputChunk(), updateChunkStatus(), and verifyChunk().
UploadFromChunks::concatenateChunks | ( | ) |
Append the final chunk and ready file for parent::performUpload()
Definition at line 137 of file UploadFromChunks.php.
References $ext, FileRepo\DELETE_SOURCE, FileBackend\extensionFromPath(), getChunkIndex(), getOffset(), UploadBase\getVerificationErrorCode(), getVirtualChunkLocation(), UploadBase\OK, UploadBase\runUploadStashFileHook(), UploadBase\setTempFile(), UploadFromFile\verifyUpload(), wfDebug(), and wfDebugLog().
UploadFromChunks::continueChunks | ( | $name, | |
$key, | |||
$webRequestUpload | |||
) |
Continue chunk uploading.
string | $name | |
string | $key | |
WebRequestUpload | $webRequestUpload |
Definition at line 118 of file UploadFromChunks.php.
References getChunkStatus(), UploadBase\getRealPath(), and UploadBase\initializePathInfo().
|
protected |
Calls the parent doStashFile and updates the uploadsession table to handle "chunks".
User | null | $user |
Reimplemented from UploadBase.
Definition at line 91 of file UploadFromChunks.php.
References UploadBase\$mStashFile, $user, outputChunk(), and updateChunkStatus().
|
private |
Definition at line 365 of file UploadFromChunks.php.
References getChunkIndex().
Referenced by getVirtualChunkLocation(), and outputChunk().
|
private |
Get the current Chunk index.
Definition at line 311 of file UploadFromChunks.php.
References $mChunkIndex.
Referenced by concatenateChunks(), getChunkFileKey(), and updateChunkStatus().
|
private |
Get the chunk db state and populate update relevant local values.
Definition at line 285 of file UploadFromChunks.php.
Referenced by continueChunks().
UploadFromChunks::getOffset | ( | ) |
Get the offset at which the next uploaded chunk will be appended to.
Definition at line 323 of file UploadFromChunks.php.
References $mOffset.
Referenced by addChunk(), concatenateChunks(), and updateChunkStatus().
|
private |
Returns the virtual chunk location:
int | $index |
Definition at line 210 of file UploadFromChunks.php.
References getChunkFileKey().
Referenced by concatenateChunks().
|
private |
Output the chunk to disk.
string | $chunkPath |
UploadChunkFileException |
Definition at line 338 of file UploadFromChunks.php.
References getChunkFileKey().
Referenced by addChunk(), and doStashFile().
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.
User | $user | |
bool | $isPartial | Pass true if this is a part of a chunked upload (not a complete file). |
Reimplemented from UploadBase.
Definition at line 75 of file UploadFromChunks.php.
References $user, MWException\msg(), and verifyChunk().
|
private |
Update the chunk db table with the current status:
Definition at line 265 of file UploadFromChunks.php.
References getChunkIndex(), getOffset(), and wfDebug().
Referenced by addChunk(), and doStashFile().
|
private |
Verify that the chunk isn't really an evil html file.
UploadChunkVerificationException |
Definition at line 378 of file UploadFromChunks.php.
References UploadBase\$mDesiredDestName, $mFileKey, $res, and UploadBase\verifyPartialFile().
Referenced by addChunk(), and tryStashFile().
|
protected |
Definition at line 42 of file UploadFromChunks.php.
Referenced by getChunkIndex().
|
protected |
Definition at line 43 of file UploadFromChunks.php.
Referenced by verifyChunk().
|
protected |
Definition at line 41 of file UploadFromChunks.php.
Referenced by getOffset().
|
protected |
Definition at line 44 of file UploadFromChunks.php.
|
private |
Definition at line 35 of file UploadFromChunks.php.
Referenced by __construct().
UploadStash UploadFromChunks::$stash |
Definition at line 37 of file UploadFromChunks.php.
Referenced by __construct().
User UploadFromChunks::$user |
Definition at line 39 of file UploadFromChunks.php.
Referenced by __construct(), doStashFile(), and tryStashFile().