MediaWiki  master
UploadFromUrl Class Reference

Implements uploading from a HTTP resource. More...

Inheritance diagram for UploadFromUrl:
Collaboration diagram for UploadFromUrl:

Public Member Functions

 fetchFile ( $httpOptions=[])
 Download the file. More...
 
 getSourceType ()
 
 initialize ( $name, $url)
 Entry point for API upload. More...
 
 initializeFromRequest (&$request)
 Entry point for SpecialUpload. More...
 
 saveTempFileChunk ( $req, $buffer)
 Callback: save a chunk of the result of a HTTP request to the temporary file. More...
 
- Public Member Functions inherited from UploadBase
 __construct ()
 
 checkSvgScriptCallback ( $element, $attribs, $data=null)
 
 checkWarnings ( $user=null)
 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)
 
 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)
 
 initializePathInfo ( $name, $tempPath, $fileSize, $removeTempFile=false)
 
 isEmptyFile ()
 Return true if the file is empty. More...
 
 performUpload ( $comment, $pageText, $watch, $user, $tags=[], ?string $watchlistExpiry=null)
 Really perform the upload. More...
 
 postProcessUpload ()
 Perform extra steps after a successful upload. 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 (Authority $performer)
 Alias for verifyTitlePermissions. More...
 
 verifyTitlePermissions (Authority $performer)
 Check whether the user can edit, upload and create the image. More...
 
 verifyUpload ()
 Verify whether the upload is sensible. More...
 
 zipEntryCallback ( $entry)
 Callback for ZipDirectoryReader to detect Java class files. More...
 

Static Public Member Functions

static isAllowed (Authority $performer)
 Checks if the user is allowed to use the upload-by-URL feature. More...
 
static isAllowedHost ( $url)
 Checks whether the URL is for an allowed host The domains in the allowlist can include wildcard characters (*) in place of any of the domain levels, e.g. More...
 
static isAllowedUrl ( $url)
 Checks whether the URL is not allowed. More...
 
static isEnabled ()
 Checks if the upload from URL feature is enabled. More...
 
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 checkSvgExternalDTD ( $type, $publicId, $systemId)
 Verify that DTD urls referenced are only the standard dtds. 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 MediaWiki's maximum uploaded file size for given type of upload, based on $wgMaxUploadSize. More...
 
static getSessionStatus (UserIdentity $user, $statusKey)
 Get the current status of a chunked upload (used for polling) 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 makeWarningsSerializable ( $warnings)
 Convert the warnings array returned by checkWarnings() to something that can be serialized. More...
 
static setSessionStatus (UserIdentity $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 (Authority $performer, 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

 $mTmpHandle
 
- 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

 makeTemporaryFile ()
 Create a new temporary file in the URL subdirectory of wfTempDir(). More...
 
 reallyFetchFile ( $httpOptions=[])
 Download the file, save it to the temporary file and update the file size and set $mRemoveTempFile to true. 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

 $mTempPath
 
 $mUrl
 
- 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) More...
 
Title bool null $mTitle = false
 
int $mTitleError = 0
 
TempFSFile null $tempFileObj
 Wrapper to handle deleting the temp file. More...
 

Static Protected Attributes

static $allowedUrls = []
 
- Static Protected Attributes inherited from UploadBase
static $safeXmlEncodings
 

Static Private Member Functions

static getAllowedHosts ()
 

Detailed Description

Implements uploading from a HTTP resource.

Author
Bryan Tong Minh
Michael Dale

Definition at line 35 of file UploadFromUrl.php.

Member Function Documentation

◆ fetchFile()

UploadFromUrl::fetchFile (   $httpOptions = [])

Download the file.

Parameters
array$httpOptionsArray of options for MWHttpRequest. This could be used to override the timeout on the http request.
Returns
Status

Definition at line 216 of file UploadFromUrl.php.

References MWHttpRequest\isValidURI(), and StatusValue\newFatal().

◆ getAllowedHosts()

static UploadFromUrl::getAllowedHosts ( )
staticprivate
Returns
string[]

Definition at line 119 of file UploadFromUrl.php.

References $line, and wfMessage().

Referenced by isAllowedHost().

◆ getSourceType()

UploadFromUrl::getSourceType ( )
Returns
string

Reimplemented from UploadBase.

Definition at line 205 of file UploadFromUrl.php.

◆ initialize()

UploadFromUrl::initialize (   $name,
  $url 
)

Entry point for API upload.

Parameters
string$name
string$url
Exceptions
MWException

Definition at line 164 of file UploadFromUrl.php.

Referenced by ApiUpload\selectUploadModule().

◆ initializeFromRequest()

UploadFromUrl::initializeFromRequest ( $request)

Entry point for SpecialUpload.

Parameters
WebRequest&$request

Reimplemented from UploadBase.

Definition at line 176 of file UploadFromUrl.php.

◆ isAllowed()

static UploadFromUrl::isAllowed ( Authority  $performer)
static

Checks if the user is allowed to use the upload-by-URL feature.

If the user is not allowed, return the name of the user right as a string. If the user is allowed, have the parent do further permissions checking.

Parameters
Authority$performer
Returns
bool|string

Reimplemented from UploadBase.

Definition at line 51 of file UploadFromUrl.php.

References MediaWiki\Permissions\Authority\isAllowed().

Referenced by UploadForm\getSourceSection().

◆ isAllowedHost()

static UploadFromUrl::isAllowedHost (   $url)
static

Checks whether the URL is for an allowed host The domains in the allowlist can include wildcard characters (*) in place of any of the domain levels, e.g.

'*.flickr.com' or 'upload.*.gov.uk'.

Parameters
string$url
Returns
bool

Definition at line 78 of file UploadFromUrl.php.

References getAllowedHosts(), and wfParseUrl().

Referenced by ApiUpload\selectUploadModule().

◆ isAllowedUrl()

static UploadFromUrl::isAllowedUrl (   $url)
static

Checks whether the URL is not allowed.

Parameters
string$url
Returns
bool

Definition at line 147 of file UploadFromUrl.php.

References Hooks\runner().

Referenced by ApiUpload\selectUploadModule().

◆ isEnabled()

static UploadFromUrl::isEnabled ( )
static

Checks if the upload from URL feature is enabled.

Returns
bool

Reimplemented from UploadBase.

Definition at line 64 of file UploadFromUrl.php.

Referenced by UploadForm\getSourceSection(), and ApiUpload\selectUploadModule().

◆ isValidRequest()

static UploadFromUrl::isValidRequest (   $request)
static
Parameters
WebRequest$request
Returns
bool

Reimplemented from UploadBase.

Definition at line 191 of file UploadFromUrl.php.

References RequestContext\getMain().

◆ makeTemporaryFile()

UploadFromUrl::makeTemporaryFile ( )
protected

Create a new temporary file in the URL subdirectory of wfTempDir().

Returns
string Path to the file

Definition at line 235 of file UploadFromUrl.php.

◆ reallyFetchFile()

UploadFromUrl::reallyFetchFile (   $httpOptions = [])
protected

Download the file, save it to the temporary file and update the file size and set $mRemoveTempFile to true.

Parameters
array$httpOptionsArray of options for MWHttpRequest
Returns
Status

Definition at line 277 of file UploadFromUrl.php.

References StatusValue\newFatal(), and wfDebugLog().

◆ saveTempFileChunk()

UploadFromUrl::saveTempFileChunk (   $req,
  $buffer 
)

Callback: save a chunk of the result of a HTTP request to the temporary file.

Parameters
mixed$req
string$buffer
Returns
int Number of bytes handled

Definition at line 250 of file UploadFromUrl.php.

References wfDebugLog().

Member Data Documentation

◆ $allowedUrls

UploadFromUrl::$allowedUrls = []
staticprotected

Definition at line 40 of file UploadFromUrl.php.

◆ $mTempPath

UploadFromUrl::$mTempPath
protected

Definition at line 38 of file UploadFromUrl.php.

◆ $mTmpHandle

UploadFromUrl::$mTmpHandle

Definition at line 38 of file UploadFromUrl.php.

◆ $mUrl

UploadFromUrl::$mUrl
protected

Definition at line 36 of file UploadFromUrl.php.


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