MediaWiki REL1_33
|
Implements uploading from chunks. More...
Public Member Functions | |
__construct (User $user, $stash=false, $repo=false) | |
Setup local pointers to stash, repo and user (similar to UploadFromStash) | |
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. | |
getVirtualChunkLocation ( $index) | |
Returns the virtual chunk location: | |
stashFile (User $user=null) | |
@inheritDoc | |
stashFileGetKey () | |
@inheritDoc | |
stashSession () | |
@inheritDoc | |
tryStashFile (User $user, $isPartial=false) | |
@inheritDoc | |
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 () | |
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) | |
Initialize the path information. | |
isEmptyFile () | |
Return true if the file is empty. | |
performUpload ( $comment, $pageText, $watch, $user, $tags=[]) | |
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 ( $user) | |
Alias for verifyTitlePermissions. | |
verifyTitlePermissions ( $user) | |
Check whether the user can edit, upload and create the image. | |
zipEntryCallback ( $entry) | |
Callback for ZipDirectoryReader to detect Java class files. | |
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 | |
$mBlackListedExtensions | |
$mDesiredDestName | |
$mDestName | |
$mFileProps | |
$mFileSize | |
$mFilteredName | |
$mFinalExtension | |
$mJavaDetected | |
$mLocalFile | |
$mRemoveTempFile | |
$mSourceType | |
$mStashFile | |
$mSVGNSError | |
string | $mTempPath |
Local file system path to the file to upload (or a local copy) | |
$mTitle = false | |
$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. | |
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 the MediaWiki maximum uploaded file size for given type of upload, based on $wgMaxUploadSize. | |
static | getSessionStatus (User $user, $statusKey) |
Get the current status of a chunked upload (used for polling) | |
static | isAllowed ( $user) |
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 | setSessionStatus (User $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 (User $user, 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 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 |
Static Protected Attributes inherited from UploadBase | |
static | $safeXmlEncodings |
Implements uploading from chunks.
Definition at line 30 of file UploadFromChunks.php.
UploadFromChunks::__construct | ( | User | $user, |
$stash = false, | |||
$repo = false ) |
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 45 of file UploadFromChunks.php.
References $repo, $user, RepoGroup\singleton(), 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 248 of file UploadFromChunks.php.
References $e, UploadBase\$mTempPath, and(), UploadBase\getMaxUploadSize(), getOffset(), outputChunk(), updateChunkStatus(), and verifyChunk().
UploadFromChunks::concatenateChunks | ( | ) |
Append the final chunk and ready file for parent::performUpload()
Definition at line 159 of file UploadFromChunks.php.
References $e, $ext, $ret, and(), FileRepo\DELETE_SOURCE, FileBackend\extensionFromPath(), TempFSFile\factory(), getChunkIndex(), getOffset(), UploadBase\getVerificationErrorCode(), getVirtualChunkLocation(), UploadBase\OK, UploadBase\runUploadStashFileHook(), UploadBase\setTempFile(), UploadFromFile\verifyUpload(), wfDebug(), wfDebugLog(), and wfTempDir().
UploadFromChunks::continueChunks | ( | $name, | |
$key, | |||
$webRequestUpload ) |
Continue chunk uploading.
string | $name | |
string | $key | |
WebRequestUpload | $webRequestUpload |
Definition at line 141 of file UploadFromChunks.php.
References and(), getChunkStatus(), UploadBase\getRealPath(), and UploadBase\initializePathInfo().
Calls the parent doStashFile and updates the uploadsession table to handle "chunks".
User | null | $user |
Reimplemented from UploadBase.
Definition at line 114 of file UploadFromChunks.php.
References UploadBase\$mStashFile, outputChunk(), and updateChunkStatus().
|
private |
Definition at line 386 of file UploadFromChunks.php.
References getChunkIndex().
Referenced by getVirtualChunkLocation(), and outputChunk().
|
private |
Get the current Chunk index.
Definition at line 332 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 306 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 344 of file UploadFromChunks.php.
References $mOffset.
Referenced by addChunk(), concatenateChunks(), and updateChunkStatus().
UploadFromChunks::getVirtualChunkLocation | ( | $index | ) |
Returns the virtual chunk location:
int | $index |
Definition at line 231 of file UploadFromChunks.php.
References getChunkFileKey().
Referenced by concatenateChunks().
|
private |
Output the chunk to disk.
string | $chunkPath |
UploadChunkFileException |
Definition at line 359 of file UploadFromChunks.php.
References and(), and getChunkFileKey().
Referenced by addChunk(), and doStashFile().
@inheritDoc
UploadChunkVerificationException |
Reimplemented from UploadBase.
Definition at line 80 of file UploadFromChunks.php.
References verifyChunk(), and wfDeprecated().
UploadFromChunks::stashFileGetKey | ( | ) |
@inheritDoc
UploadChunkVerificationException |
Reimplemented from UploadBase.
Definition at line 91 of file UploadFromChunks.php.
References verifyChunk(), and wfDeprecated().
UploadFromChunks::stashSession | ( | ) |
@inheritDoc
UploadChunkVerificationException |
Reimplemented from UploadBase.
Definition at line 102 of file UploadFromChunks.php.
References verifyChunk(), and wfDeprecated().
UploadFromChunks::tryStashFile | ( | User | $user, |
$isPartial = false ) |
@inheritDoc
Reimplemented from UploadBase.
Definition at line 65 of file UploadFromChunks.php.
References $e, and verifyChunk().
|
private |
Update the chunk db table with the current status:
Definition at line 286 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 399 of file UploadFromChunks.php.
References UploadBase\$mDesiredDestName, $mFileKey, $res, and(), and UploadBase\verifyPartialFile().
Referenced by addChunk(), stashFile(), stashFileGetKey(), stashSession(), and tryStashFile().
|
protected |
Definition at line 32 of file UploadFromChunks.php.
Referenced by getChunkIndex().
|
protected |
Definition at line 33 of file UploadFromChunks.php.
Referenced by verifyChunk().
|
protected |
Definition at line 31 of file UploadFromChunks.php.
Referenced by getOffset().
|
protected |
Definition at line 34 of file UploadFromChunks.php.
|
private |
Definition at line 36 of file UploadFromChunks.php.
Referenced by __construct().