MediaWiki
1.28.0
|
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) More... | |
addChunk ($chunkPath, $chunkSize, $offset) | |
Add a chunk to the temporary directory. More... | |
concatenateChunks () | |
Append the final chunk and ready file for parent::performUpload() More... | |
continueChunks ($name, $key, $webRequestUpload) | |
Continue chunk uploading. More... | |
getOffset () | |
Get the offset at which the next uploaded chunk will be appended to. More... | |
getVirtualChunkLocation ($index) | |
Returns the virtual chunk location: More... | |
Public Member Functions inherited from UploadFromFile | |
getSourceType () | |
initialize ($name, $webRequestUpload) | |
Initialize from a filename and a WebRequestUpload. More... | |
initializeFromRequest (&$request) | |
verifyUpload () | |
Public Member Functions inherited from UploadBase | |
__construct () | |
checkSvgScriptCallback ($element, $attribs, $data=null) | |
checkWarnings () | |
Check for non fatal problems with the file. More... | |
cleanupTempFile () | |
If we've modified the upload file we need to manually remove it on exit to clean up. More... | |
convertVerifyErrorToStatus ($error) | |
fetchFile () | |
Fetch the file. More... | |
getFileSize () | |
Return the file size. More... | |
getImageInfo ($result) | |
Gets image info about the file just uploaded. More... | |
getLocalFile () | |
Return the local file and initializes if necessary. More... | |
getRealPath ($srcPath) | |
getSourceType () | |
Returns the upload type. More... | |
getStashFile () | |
getTempFileSha1Base36 () | |
Get the base 36 SHA1 of the file. More... | |
getTempPath () | |
getTitle () | |
Returns the title of the file to be uploaded. More... | |
getVerificationErrorCode ($error) | |
initializeFromRequest (&$request) | |
Initialize from a WebRequest. More... | |
initializePathInfo ($name, $tempPath, $fileSize, $removeTempFile=false) | |
Initialize the path information. More... | |
isEmptyFile () | |
Return true if the file is empty. More... | |
performUpload ($comment, $pageText, $watch, $user, $tags=[]) | |
Really perform the upload. More... | |
postProcessUpload () | |
Perform extra steps after a successful upload. More... | |
stashFile (User $user=null) | |
If the user does not supply all necessary information in the first upload form submission (either by accident or by design) then we may want to stash the file temporarily, get more information, and publish the file later. More... | |
stashFileGetKey () | |
Stash a file in a temporary directory, returning a key which can be used to find the file again. More... | |
stashSession () | |
alias for stashFileGetKey, for backwards compatibility More... | |
tryStashFile (User $user, $isPartial=false) | |
Like stashFile(), but respects extensions' wishes to prevent the stashing. More... | |
validateName () | |
Verify that the name is valid and, if necessary, that we can overwrite. More... | |
verifyPermissions ($user) | |
Alias for verifyTitlePermissions. More... | |
verifyTitlePermissions ($user) | |
Check whether the user can edit, upload and create the image. More... | |
verifyUpload () | |
Verify whether the upload is sane. More... | |
zipEntryCallback ($entry) | |
Callback for ZipDirectoryReader to detect Java class files. More... | |
Protected Member Functions | |
doStashFile (User $user=null) | |
Calls the parent doStashFile and updates the uploadsession table to handle "chunks". More... | |
Protected Member Functions inherited from UploadBase | |
detectScriptInSvg ($filename, $partial) | |
doStashFile (User $user=null) | |
Implementation for stashFile() and tryStashFile(). More... | |
runUploadStashFileHook (User $user) | |
setTempFile ($tempPath, $fileSize=null) | |
verifyFile () | |
Verifies that it's ok to include the uploaded file. More... | |
verifyMimeType ($mime) | |
Verify the MIME type. More... | |
verifyPartialFile () | |
A verification routine suitable for partial files. More... | |
Protected Attributes | |
$mChunkIndex | |
$mFileKey | |
$mOffset | |
$mVirtualTempPath | |
Protected Attributes inherited from UploadFromFile | |
WebRequestUpload | $mUpload = null |
Protected Attributes inherited from UploadBase | |
$mBlackListedExtensions | |
$mDesiredDestName | |
$mFilteredName | |
$mJavaDetected | |
$mLocalFile | |
string | $mTempPath |
Local file system path to the file to upload (or a local copy) More... | |
$mTitle = false | |
TempFSFile null | $tempFileObj |
Wrapper to handle deleting the temp file. More... | |
Private Member Functions | |
getChunkFileKey ($index=null) | |
getChunkIndex () | |
Get the current Chunk index. More... | |
getChunkStatus () | |
Get the chunk db state and populate update relevant local values. More... | |
outputChunk ($chunkPath) | |
Output the chunk to disk. More... | |
updateChunkStatus () | |
Update the chunk db table with the current status: More... | |
verifyChunk () | |
Verify that the chunk isn't really an evil html file. More... | |
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. More... | |
static | checkFileExtensionList ($ext, $list) |
Perform case-insensitive match against a list of file extensions. More... | |
static | checkSvgPICallback ($target, $data) |
Callback to filter SVG Processing Instructions. More... | |
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. More... | |
static | createFromRequest (&$request, $type=null) |
Create a form of UploadBase depending on wpSourceType and initializes it. More... | |
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. More... | |
static | detectVirus ($file) |
Generic wrapper function for a virus scanner program. More... | |
static | getExistsWarning ($file) |
Helper function that does various existence checks for a file. More... | |
static | getFilenamePrefixBlacklist () |
Get a list of blacklisted filename prefixes from [[MediaWiki:Filename-prefix-blacklist]]. More... | |
static | getMaxPhpUploadSize () |
Get the PHP maximum uploaded file size, based on ini settings. More... | |
static | getMaxUploadSize ($forType=null) |
Get the MediaWiki maximum uploaded file size for given type of upload, based on $wgMaxUploadSize. More... | |
static | getSessionStatus (User $user, $statusKey) |
Get the current status of a chunked upload (used for polling) More... | |
static | isAllowed ($user) |
Returns true if the user can use this upload module or else a string identifying the missing permission. More... | |
static | isEnabled () |
Returns true if uploads are enabled. More... | |
static | isThrottled ($user) |
Returns true if the user has surpassed the upload rate limit, false otherwise. More... | |
static | isThumbName ($filename) |
Helper function that checks whether the filename looks like a thumbnail. More... | |
static | isValidRequest ($request) |
Check whether a request if valid for this handler. More... | |
static | setSessionStatus (User $user, $statusKey, $value) |
Set the current status of a chunked upload (used for polling) More... | |
static | splitExtensions ($filename) |
Split a file into a base name and all dot-delimited 'extensions' on the end. More... | |
static | userCanReUpload (User $user, File $img) |
Check if a user is the last uploader. More... | |
static | verifyExtension ($mime, $extension) |
Checks if the MIME type of the uploaded file matches the file extension. More... | |
Public Attributes inherited from UploadBase | |
$mDestName | |
$mFileProps | |
$mFileSize | |
$mFinalExtension | |
$mRemoveTempFile | |
$mSourceType | |
$mStashFile | |
$mSVGNSError | |
$mTitleError = 0 | |
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.
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, User\getId(), RepoGroup\singleton(), user, 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 207 of file UploadFromChunks.php.
References $e, UploadBase\$mTempPath, $status, UploadBase\getMaxUploadSize(), getOffset(), StatusValue\newFatal(), outputChunk(), updateChunkStatus(), and verifyChunk().
UploadFromChunks::concatenateChunks | ( | ) |
Append the final chunk and ready file for parent::performUpload()
Definition at line 118 of file UploadFromChunks.php.
References $e, $ext, $ret, $status, FileRepo\DELETE_SOURCE, FileBackend\extensionFromPath(), TempFSFile\factory(), getChunkIndex(), getOffset(), UploadBase\getVerificationErrorCode(), getVirtualChunkLocation(), UploadBase\OK, UploadBase\runUploadStashFileHook(), UploadBase\setTempFile(), user, UploadFromFile\verifyUpload(), wfDebug(), wfDebugLog(), and wfTempDir().
UploadFromChunks::continueChunks | ( | $name, | |
$key, | |||
$webRequestUpload | |||
) |
Continue chunk uploading.
string | $name | |
string | $key | |
WebRequestUpload | $webRequestUpload |
Definition at line 100 of file UploadFromChunks.php.
References $name, getChunkStatus(), UploadBase\getRealPath(), and UploadBase\initializePathInfo().
|
protected |
Calls the parent doStashFile and updates the uploadsession table to handle "chunks".
User | null | $user |
Definition at line 72 of file UploadFromChunks.php.
References UploadBase\$mStashFile, $user, outputChunk(), updateChunkStatus(), and verifyChunk().
|
private |
Definition at line 345 of file UploadFromChunks.php.
References getChunkIndex().
Referenced by getVirtualChunkLocation(), and outputChunk().
|
private |
Get the current Chunk index.
Definition at line 291 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 265 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 303 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 190 of file UploadFromChunks.php.
References getChunkFileKey().
Referenced by concatenateChunks().
|
private |
Output the chunk to disk.
string | $chunkPath |
UploadChunkFileException |
Definition at line 318 of file UploadFromChunks.php.
References getChunkFileKey().
Referenced by addChunk(), and doStashFile().
|
private |
Update the chunk db table with the current status:
Definition at line 245 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 358 of file UploadFromChunks.php.
References UploadBase\$mDesiredDestName, $mFileKey, $res, and UploadBase\verifyPartialFile().
Referenced by addChunk(), and doStashFile().
|
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().