MediaWiki  REL1_24
File Class Reference

Implements some public methods and some protected utility functions which are required by multiple child classes. More...

Inheritance diagram for File:
Collaboration diagram for File:

List of all members.

Public Member Functions

 __construct ($title, $repo)
 Call this constructor from child classes.
 __get ($name)
 allowInlineDisplay ()
 Alias for canRender()
 canAnimateThumbIfAppropriate ()
 Will the thumbnail be animated if one would expect it to be.
 canRender ()
 Checks if the output of transform() for this file is likely to be valid.
 convertMetadataVersion ($metadata, $version)
 get versioned metadata
 createThumb ($width, $height=-1)
 Create a thumbnail of the image having the specified width/height.
 delete ($reason, $suppress=false, $user=null)
 Delete all versions of the file.
 exists ()
 Returns true if file exists in the repository.
 formatMetadata ()
 generateAndSaveThumb ($tmpFile, $transformParams, $flags)
 Generates a thumbnail according to the given parameters and saves it to storage.
 generateThumbName ($name, $params)
 Generate a thumbnail file name from a name and specified parameters.
 getArchivePath ($suffix=false)
 Get the path of the archived file.
 getArchiveRel ($suffix=false)
 Get the path of an archived file relative to the public zone root.
 getArchiveThumbPath ($archiveName, $suffix=false)
 Get the path of an archived file's thumbs, or a particular thumb if $suffix is specified.
 getArchiveThumbRel ($archiveName, $suffix=false)
 Get the path, relative to the thumbnail zone root, for an archived file's thumbs directory or a specific thumb if the $suffix is given.
 getArchiveThumbUrl ($archiveName, $suffix=false)
 Get the URL of the archived file's thumbs, or a particular thumb if $suffix is specified.
 getArchiveUrl ($suffix=false)
 Get the URL of the archive directory, or a particular file if $suffix is specified.
 getArchiveVirtualUrl ($suffix=false)
 Get the public zone virtual URL for an archived version source file.
 getAvailableLanguages ()
 Gives a (possibly empty) list of languages to render the file in.
 getBitDepth ()
 Return the bit depth of the file Overridden by LocalFile STUB.
 getCanonicalUrl ()
 getCommonMetaArray ()
 Like getMetadata but returns a handler independent array of common values.
 getDefaultRenderLanguage ()
 In files that support multiple language, what is the default language to use if none specified.
 getDescription ($audience=self::FOR_PUBLIC, User $user=null)
 Get description of file revision STUB.
 getDescriptionText ($lang=false)
 Get the HTML text of the description page, if available.
 getDescriptionUrl ()
 Get the URL of the image description page.
 getDimensionsString ()
 getExtension ()
 Get the file extension, e.g.
 getFullUrl ()
 Return a fully-qualified URL to the file.
 getHandler ()
 Get a MediaHandler instance for this file.
 getHashPath ()
 Get the filename hash component of the directory including trailing slash, e.g.
 getHeight ($page=1)
 Return the height of the image.
 getHistory ($limit=null, $start=null, $end=null, $inc=true)
 Return a fragment of the history of file.
 getImageSize ($filePath)
 Get an image size array like that returned by getImageSize(), or false if it can't be determined.
 getLastError ()
 Get last thumbnailing error.
 getLength ()
 Get the duration of a media file in seconds.
 getLocalRefPath ()
 Get an FS copy or original of this file and return the path.
 getLongDesc ()
 getMediaType ()
 Return the type of the media in the file.
 getMetadata ()
 Get handler-specific metadata Overridden by LocalFile, UnregisteredLocalFile STUB.
 getMimeType ()
 Returns the MIME type of the file.
 getName ()
 Return the name of this file.
 getOriginalTitle ()
 Return the title used to find this file.
 getPath ()
 Return the storage path to the file.
 getRedirected ()
 getRedirectedTitle ()
 getRel ()
 Get the path of the file relative to the public zone root.
 getRepo ()
 Returns the repository.
 getRepoName ()
 Returns the name of the repository.
 getSha1 ()
 Get the SHA-1 base 36 hash of the file.
 getShortDesc ()
 getSize ()
 Return the size of the image file, in bytes Overridden by LocalFile, UnregisteredLocalFile STUB.
 getStorageKey ()
 Get the deletion archive key, "<sha1>.<ext>".
 getStreamHeaders ()
 getThumbDisposition ($thumbName, $dispositionType= 'inline')
 getThumbnailBucket ($desiredWidth, $page=1)
 Return the smallest bucket from $wgThumbnailBuckets which is at least $wgThumbnailMinimumBucketDistance larger than $desiredWidth.
 getThumbnails ()
 Get all thumbnail names previously generated for this file STUB Overridden by LocalFile.
 getThumbnailSource ($params)
 Returns the most appropriate source image for the thumbnail, given a target thumbnail size.
 getThumbPath ($suffix=false)
 Get the path of the thumbnail directory, or a particular file if $suffix is specified.
 getThumbRel ($suffix=false)
 Get the path, relative to the thumbnail zone root, of the thumbnail directory or a particular file if $suffix is specified.
 getThumbUrl ($suffix=false)
 Get the URL of the thumbnail directory, or a particular file if $suffix is specified.
 getThumbVirtualUrl ($suffix=false)
 Get the virtual URL for a thumbnail file or directory.
 getTimestamp ()
 Get the 14-character timestamp of the file upload.
 getTitle ()
 Return the associated title object.
 getTranscodedPath ($suffix=false)
 Get the path of the transcoded directory, or a particular file if $suffix is specified.
 getTranscodedUrl ($suffix=false)
 Get the URL of the transcoded directory, or a particular file if $suffix is specified.
 getTransformScript ()
 getUnscaledThumb ($handlerParams=array())
 Get a ThumbnailImage which is the same size as the source.
 getUrl ()
 Return the URL of the file.
 getUrlRel ()
 Get urlencoded path of the file relative to the public zone root.
 getUser ($type= 'text')
 Returns ID or name of user who uploaded the file STUB.
 getViewURL ()
 getVirtualUrl ($suffix=false)
 Get the public zone virtual URL for a current version source file.
 getVisibility ()
 Return the deletion bitfield STUB.
 getWidth ($page=1)
 Return the width of the image.
 getZoneUrl ($zone, $suffix=false)
 Get the URL of the zone directory, or a particular file if $suffix is specified.
 iconThumb ()
 Get a ThumbnailImage representing a file type icon.
 isCacheable ()
 Check if this file object is small and can be cached.
 isDeleted ($field)
 Is this file a "deleted" file in a private archive? STUB.
 isExpensiveToThumbnail ()
 True if creating thumbnails from the file is large or otherwise resource-intensive.
 isHashed ()
 isLocal ()
 Returns true if the file comes from the local file repository.
 isMissing ()
 isMultipage ()
 Returns 'true' if this file is a type which supports multiple pages, e.g.
 isOld ()
 Returns true if the image is an old version STUB.
 isSafeFile ()
 Determines if this media file is in a format that is unlikely to contain viruses or malicious content.
 isTrustedFile ()
 Returns true if the file is flagged as trusted.
 isVectorized ()
 Return true if the file is vectorized.
 isVisible ()
 Returns true if file exists in the repository and can be included in a page.
 migrateThumbFile ($thumbName)
 Hook into transform() to allow migration of thumbnail files STUB Overridden by LocalFile.
 move ($target)
 Move file to the new title.
 mustRender ()
 Return true if the file is of a type that can't be directly rendered by typical browsers and needs to be re-rasterized.
 nextHistoryLine ()
 Return the history of this file, line by line.
 pageCount ()
 Returns the number of pages of a multipage document, or false for documents which aren't multipage documents.
 publish ($srcPath, $flags=0, array $options=array())
 Move or copy a file to its public location.
 purgeCache ($options=array())
 Purge shared caches such as thumbnails and DB data caching STUB Overridden by LocalFile.
 purgeDescription ()
 Purge the file description page, but don't go after pages using the file.
 purgeEverything ()
 Purge metadata and all affected pages when the file is created, deleted, or majorly updated.
 readOnlyError ()
 recordUpload ($oldver, $desc, $license= '', $copyStatus= '', $source= '', $watch=false, $timestamp=false, User $user=null)
 Record a file upload in the upload log and the image table STUB Overridden by LocalFile.
 redirectedFrom ($from)
 resetHistory ()
 Reset the history pointer to the first element of the history.
 restore ($versions=array(), $unsuppress=false)
 Restore all or specified deleted revisions to the given file.
 thumbName ($params, $flags=0)
 Return the file name of a thumbnail with the specified parameters.
 transform ($params, $flags=0)
 Transform a media file.
 upgradeRow ()
 Upgrade the database row if there is one Called by ImagePage STUB.
 userCan ($field, User $user=null)
 Determine if the current user is allowed to view a particular field of this file, if it's marked as deleted.
 wasDeleted ()
 Was this file ever deleted from the wiki?

Static Public Member Functions

static checkExtensionCompatibility (File $old, $new)
 Checks if file extensions are compatible.
static compare (File $a, File $b)
 Callback for usort() to do file sorts by name.
static normalizeExtension ($ext)
 Normalize a file extension to the common form, and ensure it's clean.
static normalizeTitle ($title, $exception=false)
 Given a string or Title object return either a valid Title object with namespace NS_FILE or null.
static scaleHeight ($srcWidth, $srcHeight, $dstWidth)
 Calculate the height of a thumbnail using the source and destination width.
static splitMime ($mime)
 Split an internet media type into its two components; if not a two-part name, set the minor type to 'unknown'.

Public Attributes

FileRepo LocalRepo
ForeignAPIRepo bool 
$repo
 Some member variables can be lazy-initialised using __get().
const DELETE_SOURCE = 1
const DELETED_COMMENT = 2
const DELETED_FILE = 1
const DELETED_RESTRICTED = 8
const DELETED_USER = 4
const FOR_PUBLIC = 1
const FOR_THIS_USER = 2
const RAW = 3
const RENDER_FORCE = 2
 Force rendering even if thumbnail already exist and using RENDER_NOW I.e.
const RENDER_NOW = 1
 Force rendering in the current process.
const THUMB_FULL_NAME = 1

Protected Member Functions

 assertRepoDefined ()
 Assert that $this->repo is set to a valid FileRepo instance.
 assertTitleDefined ()
 Assert that $this->title is set to a Title.
 generateBucketsIfNeeded ($params, $flags=0)
 Generates chained bucketed thumbnails if needed.
 getBucketThumbName ($bucket)
 Returns the name of the thumb for a given bucket.
 getBucketThumbPath ($bucket)
 Returns the repo path of the thumb for a given bucket.
 getCanRender ()
 Accessor for __get()
 getIsSafeFile ()
 Accessor for __get()
 getIsSafeFileUncached ()
 Uncached accessor.
 makeTransformTmpFile ($thumbPath)
 Creates a temp FS file with the same extension and the thumbnail.
 transformErrorOutput ($thumbPath, $thumbUrl, $params, $flags)
 Return either a MediaTransformError or placeholder thumbnail (if $wgIgnoreImageErrors)

Protected Attributes

bool $canRender
 Wether the output of transform() for this file is likely to be valid.
string $extension
 File extension *.
FSFile bool $fsFile
 False if undefined *.
MediaHandler $handler
 *
string $hashPath
 Relative path including trailing slash *.
bool $isSafeFile
 Wether this media file is in a format that is unlikely to contain viruses or malicious content.
string $lastError
 Text of last error *.
string $name
 The name of a file from its title object *.
string $pageCount
 Number of pages of a multipage document, or false for documents which aren't multipage documents.
string $path
 The storage path corresponding to one of the zones *.
string $redirected
 Main part of the title, with underscores (Title::getDBkey) *.
Title $redirectedTitle
 *
Title $redirectTitle
 *
string $repoClass = 'FileRepo'
 Required Repository class type *.
Title string bool $title
 *
array $tmpBucketedThumbCache = array()
 Cache of tmp filepaths pointing to generated bucket thumbnails, keyed by width *.
string $transformScript
 URL of transformscript (for example thumb.php) *.
string $url
 The URL corresponding to one of the four basic zones *.

Detailed Description

Implements some public methods and some protected utility functions which are required by multiple child classes.

Contains stub functionality for unimplemented public methods.

Stub functions which should be overridden are marked with STUB. Some more concrete functions are also typically overridden by child classes.

Note that only the repo object knows what its file class is called. You should never name a file class explictly outside of the repo class. Instead use the repo's factory functions to generate file objects, for example:

RepoGroup::singleton()->getLocalRepo()->newFile( $title );

The convenience functions wfLocalFile() and wfFindFile() should be sufficient in most cases.

Definition at line 50 of file File.php.


Constructor & Destructor Documentation

File::__construct ( title,
repo 
)

Call this constructor from child classes.

Both $title and $repo are optional, though some functions may return false or throw exceptions if they are not set. Most subclasses will want to call assertRepoDefined() here.

Parameters:
Title | string | bool$title
FileRepo | bool$repo

Reimplemented in LocalFile.

Definition at line 146 of file File.php.


Member Function Documentation

File::__get ( name)

Definition at line 184 of file File.php.

References $ret, and Title\makeTitleSafe().

Alias for canRender()

Returns:
bool

Definition at line 731 of file File.php.

File::assertRepoDefined ( ) [protected]

Assert that $this->repo is set to a valid FileRepo instance.

Exceptions:
MWException

Definition at line 2171 of file File.php.

Referenced by ForeignAPIFile\__construct(), getArchiveUrl(), and getTranscodedPath().

File::assertTitleDefined ( ) [protected]

Assert that $this->title is set to a Title.

Exceptions:
MWException

Definition at line 2181 of file File.php.

Will the thumbnail be animated if one would expect it to be.

Currently used to add a warning to the image description page

Returns:
bool False if the main image is both animated and the thumbnail is not. In all other cases must return true. If image is not renderable whatsoever, should return true.

Definition at line 572 of file File.php.

References $handler, MediaHandler\getDefaultRenderLanguage(), and getHandler().

Checks if the output of transform() for this file is likely to be valid.

If this is false, various user elements will display a placeholder instead.

Currently, this checks if the file is an image format that can be converted to a format supported by all browsers (namely GIF, PNG and JPEG), or if it is an SVG image and SVG conversion is enabled.

Returns:
bool

Definition at line 696 of file File.php.

Referenced by mustRender(), and ForeignAPIFile\transform().

static File::checkExtensionCompatibility ( File old,
new 
) [static]

Checks if file extensions are compatible.

Parameters:
File$oldOld file
string$newNew name
Returns:
bool|null

Definition at line 227 of file File.php.

static File::compare ( File a,
File b 
) [static]

Callback for usort() to do file sorts by name.

Parameters:
File$a
File$b
Returns:
int Result of name comparison

Definition at line 266 of file File.php.

File::convertMetadataVersion ( metadata,
version 
)

get versioned metadata

Parameters:
array | string$metadataArray or string of (serialized) metadata
int$versionVersion number.
Returns:
array Array containing metadata, or what was passed to it on fail (unserializing if not array)

Definition at line 629 of file File.php.

File::createThumb ( width,
height = -1 
)

Create a thumbnail of the image having the specified width/height.

The thumbnail will not be created if the width is larger than the image's width. Let the browser do the scaling in this case. The thumbnail is stored on disk and is only computed if the thumbnail file does not exist OR if it is older than the image. Returns the URL.

Keeps aspect ratio of original image. If both width and height are specified, the generated image will be no bigger than width x height, and will also have correct aspect ratio.

Parameters:
int$widthMaximum width of the generated thumbnail
int$heightMaximum height of the image (optional)
Returns:
string

Definition at line 935 of file File.php.

File::delete ( reason,
suppress = false,
user = null 
)

Delete all versions of the file.

Moves the files into an archive directory (or deletes them) and removes the database rows.

Cache purging is done; logging is caller's responsibility.

Parameters:
string$reason
bool$suppressHide content from sysops?
User | null$user
Returns:
bool Boolean on success, false on some kind of failure STUB Overridden by LocalFile

Reimplemented in LocalFile, and ForeignDBFile.

Definition at line 1863 of file File.php.

References readOnlyError().

Returns true if file exists in the repository.

Overridden by LocalFile to avoid unnecessary stat calls.

Returns:
bool Whether file exists in the repository.

Reimplemented in LocalFile, UploadStashFile, OldLocalFile, and ForeignAPIFile.

Definition at line 827 of file File.php.

Returns:
bool

Definition at line 1756 of file File.php.

File::generateAndSaveThumb ( tmpFile,
transformParams,
flags 
)

Generates a thumbnail according to the given parameters and saves it to storage.

Parameters:
TempFSFile$tmpFileTemporary file where the rendered thumbnail will be saved
array$transformParams
int$flags
Returns:
bool|MediaTransformOutput

Definition at line 1065 of file File.php.

References $flags, $params, and transformErrorOutput().

File::generateBucketsIfNeeded ( params,
flags = 0 
) [protected]

Generates chained bucketed thumbnails if needed.

Parameters:
array$params
int$flags
Returns:
bool Whether at least one bucket was generated

Definition at line 1128 of file File.php.

References array(), and SquidUpdate\purge().

File::generateThumbName ( name,
params 
)

Generate a thumbnail file name from a name and specified parameters.

Parameters:
string$name
array$paramsParameters which will be passed to MediaHandler::makeParamString
Returns:
string

Definition at line 903 of file File.php.

File::getArchivePath ( suffix = false)

Get the path of the archived file.

Parameters:
bool | string$suffixIf not false, the name of an archived file.
Returns:
string

Definition at line 1519 of file File.php.

File::getArchiveRel ( suffix = false)

Get the path of an archived file relative to the public zone root.

Parameters:
bool | string$suffixIf not false, the name of an archived thumbnail file
Returns:
string

Definition at line 1457 of file File.php.

File::getArchiveThumbPath ( archiveName,
suffix = false 
)

Get the path of an archived file's thumbs, or a particular thumb if $suffix is specified.

Parameters:
string$archiveNameThe timestamped name of an archived image
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1532 of file File.php.

File::getArchiveThumbRel ( archiveName,
suffix = false 
)

Get the path, relative to the thumbnail zone root, for an archived file's thumbs directory or a specific thumb if the $suffix is given.

Parameters:
string$archiveNameThe timestamped name of an archived image
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1502 of file File.php.

References getHashPath(), and getName().

File::getArchiveThumbUrl ( archiveName,
suffix = false 
)

Get the URL of the archived file's thumbs, or a particular thumb if $suffix is specified.

Parameters:
string$archiveNameThe timestamped name of an archived image
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1589 of file File.php.

File::getArchiveUrl ( suffix = false)

Get the URL of the archive directory, or a particular file if $suffix is specified.

Parameters:
bool | string$suffixIf not false, the name of an archived file
Returns:
string

Definition at line 1569 of file File.php.

References assertRepoDefined(), and getThumbRel().

Get the public zone virtual URL for an archived version source file.

Parameters:
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1663 of file File.php.

Gives a (possibly empty) list of languages to render the file in.

If the file doesn't have translations, or if the file format does not support that sort of thing, returns an empty array.

Returns:
array
Since:
1.23

Definition at line 537 of file File.php.

Return the bit depth of the file Overridden by LocalFile STUB.

Returns:
int

Reimplemented in LocalFile.

Definition at line 648 of file File.php.

References $handler, MediaHandler\convertMetadataVersion(), and getHandler().

File::getBucketThumbName ( bucket) [protected]

Returns the name of the thumb for a given bucket.

Parameters:
int$bucket
Returns:
string

Definition at line 1254 of file File.php.

Referenced by makeTransformTmpFile().

File::getBucketThumbPath ( bucket) [protected]

Returns the repo path of the thumb for a given bucket.

Parameters:
int$bucket
Returns:
string

Definition at line 1244 of file File.php.

Returns:
string

Definition at line 350 of file File.php.

File::getCanRender ( ) [protected]

Accessor for __get()

Returns:
bool

Definition at line 708 of file File.php.

Like getMetadata but returns a handler independent array of common values.

See also:
MediaHandler::getCommonMetaArray()
Returns:
array|bool Array or false if not supported
Since:
1.23

Definition at line 611 of file File.php.

In files that support multiple language, what is the default language to use if none specified.

Returns:
string Lang code, or null if filetype doesn't support multiple languages.
Since:
1.23

Definition at line 553 of file File.php.

File::getDescription ( audience = self::FOR_PUBLIC,
User user = null 
)

Get description of file revision STUB.

Parameters:
int$audienceOne of: File::FOR_PUBLIC to be displayed to all users File::FOR_THIS_USER to be displayed to the given user File::RAW get the description regardless of permissions
User$userUser object to check for, only if FOR_THIS_USER is passed to the $audience parameter
Returns:
string

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 2020 of file File.php.

Get the HTML text of the description page, if available.

Parameters:
bool | Language$langOptional language to fetch description in
Returns:
string

Reimplemented in LocalFile, and ForeignDBFile.

Definition at line 1970 of file File.php.

Get the URL of the image description page.

May return false if it is unknown or not applicable.

Returns:
string

Reimplemented in LocalFile, UploadStashFile, ForeignAPIFile, and ForeignDBFile.

Definition at line 1956 of file File.php.

Returns:
string

Definition at line 2113 of file File.php.

Get the file extension, e.g.

"svg"

Returns:
string

Definition at line 289 of file File.php.

Referenced by ForeignAPIFile\getMimeType(), and userCan().

Return a fully-qualified URL to the file.

Upload URL paths _may or may not_ be fully qualified, so we check. Local paths are assumed to belong on $wgServer.

Returns:
string

Reimplemented in UploadStashFile.

Definition at line 343 of file File.php.

Get a MediaHandler instance for this file.

Returns:
MediaHandler|bool Registered MediaHandler for file's MIME type or false if none found

Definition at line 1298 of file File.php.

Referenced by canAnimateThumbIfAppropriate(), getBitDepth(), getRedirectedTitle(), LocalFile\purgeThumbList(), ForeignAPIFile\purgeThumbnails(), and wfThumbIsStandard().

Get the filename hash component of the directory including trailing slash, e.g.

f/fa/ If the repository is not hashed, returns an empty string.

Returns:
string

Definition at line 1431 of file File.php.

Referenced by getArchiveThumbRel(), and ForeignAPIFile\getThumbPath().

File::getHeight ( page = 1)

Return the height of the image.

Returns false if the height is unknown or undefined

STUB Overridden by LocalFile, UnregisteredLocalFile

Parameters:
int$page
Returns:
bool|int False on failure

Reimplemented in LocalFile, ForeignAPIFile, UnregisteredLocalFile, and FakeDimensionFile.

Definition at line 439 of file File.php.

Referenced by RevDelArchivedFileItem\getApiData(), and RevDelFileItem\getApiData().

File::getHistory ( limit = null,
start = null,
end = null,
inc = true 
)

Return a fragment of the history of file.

STUB

Parameters:
int$limitLimit of rows to return
string$startOnly revisions older than $start will be returned
string$endOnly revisions newer than $end will be returned
bool$incInclude the endpoints of the time range
Returns:
array

Reimplemented in LocalFile.

Definition at line 1398 of file File.php.

File::getImageSize ( filePath)

Get an image size array like that returned by getImageSize(), or false if it can't be determined.

Loads the image size directly from the file ignoring caches.

Note:
Use getWidth()/getHeight() instead of this method unless you have a a good reason. This method skips all caches.
Parameters:
string$filePathThe path to the file (e.g. From getLocalPathRef() )
Returns:
array The width, followed by height, with optionally more things after

Reimplemented in UnregisteredLocalFile.

Definition at line 1942 of file File.php.

File::getIsSafeFile ( ) [protected]

Accessor for __get()

Returns:
bool

Definition at line 761 of file File.php.

File::getIsSafeFileUncached ( ) [protected]

Uncached accessor.

Returns:
bool

Definition at line 770 of file File.php.

Get last thumbnailing error.

Largely obsolete.

Returns:
string

Definition at line 1333 of file File.php.

Get the duration of a media file in seconds.

Returns:
int

Definition at line 503 of file File.php.

Get an FS copy or original of this file and return the path.

Returns false on failure. Callers must not alter the file. Temporary files are cleared automatically.

Returns:
string|bool False on failure

Definition at line 401 of file File.php.

Returns:
string

Definition at line 2089 of file File.php.

Return the type of the media in the file.

Use the value returned by this function with the MEDIATYPE_xxx constants. Overridden by LocalFile, STUB

Returns:
string

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 680 of file File.php.

Returns the MIME type of the file.

Overridden by LocalFile, UnregisteredLocalFile STUB

Returns:
string

Reimplemented in LocalFile, ForeignAPIFile, and UnregisteredLocalFile.

Definition at line 669 of file File.php.

Return the title used to find this file.

Returns:
Title

Definition at line 313 of file File.php.

Return the storage path to the file.

Note that this does not mean that a file actually exists under that location.

This path depends on whether directory hashing is active or not, i.e. whether the files are all found in the same directory, or in hashed paths like /images/3/3c.

Most callers don't check the return value, but ForeignAPIFile::getPath returns false.

Returns:
string|bool ForeignAPIFile::getPath can return false

Reimplemented in ForeignAPIFile, and FakeDimensionFile.

Definition at line 385 of file File.php.

Referenced by SpecialUploadStash\outputLocalFile(), and RefreshFileHeaders\updateFileHeaders().

Returns:
string

Definition at line 2125 of file File.php.

Returns:
Title|null

Definition at line 2132 of file File.php.

References $handler, MediaHandler\getDimensionsString(), and getHandler().

Referenced by getUrl().

Get the path of the file relative to the public zone root.

This function is overriden in OldLocalFile to be like getArchiveRel().

Returns:
string

Reimplemented in OldLocalFile.

Definition at line 1446 of file File.php.

Returns the repository.

Returns:
FileRepo|LocalRepo|bool

Definition at line 1787 of file File.php.

Referenced by LocalFileMoveBatch\addOlds(), SpecialUploadStash\outputLocalFile(), RefreshFileHeaders\updateFileHeaders(), and wfGenerateThumbnail().

Returns the name of the repository.

Returns:
string

Definition at line 1778 of file File.php.

Get the SHA-1 base 36 hash of the file.

Returns:
string

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 2040 of file File.php.

Referenced by userCan(), and wfGenerateThumbnail().

Returns:
string

Definition at line 2101 of file File.php.

Return the size of the image file, in bytes Overridden by LocalFile, UnregisteredLocalFile STUB.

Returns:
bool

Reimplemented in LocalFile, ForeignAPIFile, and UnregisteredLocalFile.

Definition at line 658 of file File.php.

Referenced by RevDelArchivedFileItem\getApiData(), RevDelFileItem\getApiData(), and SpecialUploadStash\outputLocalFile().

Get the deletion archive key, "<sha1>.<ext>".

Returns:
string

Definition at line 2051 of file File.php.

Returns:
array HTTP header name/value map to use for HEAD/GET request responses

Definition at line 2077 of file File.php.

File::getThumbDisposition ( thumbName,
dispositionType = 'inline' 
)
Parameters:
string$thumbNameThumbnail name
string$dispositionTypeType of disposition (either "attachment" or "inline")
Returns:
string Content-Disposition header value

Definition at line 1273 of file File.php.

References array(), and thumbName().

File::getThumbnailBucket ( desiredWidth,
page = 1 
)

Return the smallest bucket from $wgThumbnailBuckets which is at least $wgThumbnailMinimumBucketDistance larger than $desiredWidth.

The returned bucket, if any, will always be bigger than $desiredWidth.

Parameters:
int$desiredWidth
int$page
Returns:
bool|int

Definition at line 452 of file File.php.

Get all thumbnail names previously generated for this file STUB Overridden by LocalFile.

Returns:
array

Reimplemented in ForeignAPIFile.

Definition at line 1343 of file File.php.

File::getThumbnailSource ( params)

Returns the most appropriate source image for the thumbnail, given a target thumbnail size.

Parameters:
array$params
Returns:
array Source path and width/height of the source

Definition at line 1175 of file File.php.

File::getThumbPath ( suffix = false)

Get the path of the thumbnail directory, or a particular file if $suffix is specified.

Parameters:
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Reimplemented in UploadStashFile, and ForeignAPIFile.

Definition at line 1545 of file File.php.

Referenced by makeTransformTmpFile().

File::getThumbRel ( suffix = false)

Get the path, relative to the thumbnail zone root, of the thumbnail directory or a particular file if $suffix is specified.

Parameters:
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1475 of file File.php.

Referenced by getArchiveUrl(), and getTranscodedPath().

File::getThumbUrl ( suffix = false)

Get the URL of the thumbnail directory, or a particular file if $suffix is specified.

Parameters:
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string Path

Reimplemented in UploadStashFile.

Definition at line 1627 of file File.php.

Get the virtual URL for a thumbnail file or directory.

Parameters:
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1681 of file File.php.

Get the 14-character timestamp of the file upload.

Returns:
string|bool TS_MW timestamp or false on failure

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 2029 of file File.php.

Referenced by RevDelArchivedFileItem\getApiData(), and RevDelFileItem\getApiData().

Return the associated title object.

Returns:
Title

Definition at line 304 of file File.php.

File::getTranscodedPath ( suffix = false)

Get the path of the transcoded directory, or a particular file if $suffix is specified.

Parameters:
bool | string$suffixIf not false, the name of a media file
Returns:
string

Definition at line 1557 of file File.php.

References assertRepoDefined(), and getThumbRel().

File::getTranscodedUrl ( suffix = false)

Get the URL of the transcoded directory, or a particular file if $suffix is specified.

Parameters:
bool | string$suffixIf not false, the name of a media file
Returns:
string Path

Definition at line 1637 of file File.php.

Returns:
string

Definition at line 844 of file File.php.

File::getUnscaledThumb ( handlerParams = array())

Get a ThumbnailImage which is the same size as the source.

Parameters:
array$handlerParams
Returns:
string

Definition at line 865 of file File.php.

References array(), getName(), and wfAppendQuery().

Return the URL of the file.

Returns:
string

Reimplemented in UploadStashFile, and ForeignAPIFile.

Definition at line 326 of file File.php.

References getRedirectedTitle(), and title.

Referenced by RevDelFileItem\getApiData().

Get urlencoded path of the file relative to the public zone root.

This function is overriden in OldLocalFile to be like getArchiveUrl().

Returns:
string

Reimplemented in OldLocalFile.

Definition at line 1490 of file File.php.

File::getUser ( type = 'text')

Returns ID or name of user who uploaded the file STUB.

Parameters:
string$type'text' or 'id'
Returns:
string|int

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 494 of file File.php.

Referenced by RevDelArchivedFileItem\getApiData().

Returns:
string

Definition at line 357 of file File.php.

File::getVirtualUrl ( suffix = false)

Get the public zone virtual URL for a current version source file.

Parameters:
bool | string$suffixIf not false, the name of a thumbnail file
Returns:
string

Definition at line 1647 of file File.php.

Return the deletion bitfield STUB.

Returns:
int

Reimplemented in OldLocalFile.

Definition at line 1817 of file File.php.

File::getWidth ( page = 1)

Return the width of the image.

Returns false if the width is unknown or undefined.

STUB Overridden by LocalFile, UnregisteredLocalFile

Parameters:
int$page
Returns:
int|bool

Reimplemented in LocalFile, ForeignAPIFile, UnregisteredLocalFile, and FakeDimensionFile.

Definition at line 425 of file File.php.

Referenced by RevDelArchivedFileItem\getApiData(), and RevDelFileItem\getApiData().

File::getZoneUrl ( zone,
suffix = false 
)

Get the URL of the zone directory, or a particular file if $suffix is specified.

Parameters:
string$zoneName of requested zone
bool | string$suffixIf not false, the name of a file in zone
Returns:
string Path

Definition at line 1610 of file File.php.

Get a ThumbnailImage representing a file type icon.

Returns:
ThumbnailImage

Definition at line 1311 of file File.php.

Referenced by thumbName().

Check if this file object is small and can be cached.

Returns:
bool

Reimplemented in LocalFile.

Definition at line 2163 of file File.php.

File::isDeleted ( field)

Is this file a "deleted" file in a private archive? STUB.

Parameters:
int$fieldOne of DELETED_* bitfield constants
Returns:
bool

Reimplemented in OldLocalFile.

Definition at line 1808 of file File.php.

Referenced by RevDelArchivedFileItem\getApiData(), and RevDelFileItem\getApiData().

True if creating thumbnails from the file is large or otherwise resource-intensive.

Returns:
bool

Definition at line 2191 of file File.php.

Referenced by wfGenerateThumbnail().

Returns:
bool

Definition at line 1694 of file File.php.

Returns true if the file comes from the local file repository.

Returns:
bool

Definition at line 1769 of file File.php.

Returns:
bool

Reimplemented in LocalFile.

Definition at line 2155 of file File.php.

Returns 'true' if this file is a type which supports multiple pages, e.g.

DJVU or PDF. Note that this may be true even if the file in question only has a single page.

Returns:
bool

Definition at line 1892 of file File.php.

Returns true if the image is an old version STUB.

Returns:
bool

Reimplemented in OldLocalFile.

Definition at line 1797 of file File.php.

Determines if this media file is in a format that is unlikely to contain viruses or malicious content.

It uses the global $wgTrustedMediaFormats list to determine if the file is safe.

This is used to show a warning on the description page of non-safe files. It may also be used to disallow direct [[media:...]] links to such files.

Note that this function will always return true if allowInlineDisplay() or isTrustedFile() is true for this file.

Returns:
bool

Definition at line 748 of file File.php.

Returns true if the file is flagged as trusted.

Files flagged that way can be linked to directly, even if that is not allowed for this type of file normally.

This is a dummy function right now and always returns false. It could be implemented to extract a flag from the database. The trusted flag could be set on upload, if the user has sufficient privileges, to bypass script- and html-filters. It may even be coupled with cryptographics signatures or such.

Returns:
bool

Definition at line 814 of file File.php.

Return true if the file is vectorized.

Returns:
bool

Definition at line 517 of file File.php.

Returns true if file exists in the repository and can be included in a page.

It would be unsafe to include private images, making public thumbnails inadvertently

Returns:
bool Whether file exists in the repository and is includable.

Reimplemented in OldLocalFile.

Definition at line 837 of file File.php.

File::makeTransformTmpFile ( thumbPath) [protected]

Creates a temp FS file with the same extension and the thumbnail.

Parameters:
string$thumbPathThumbnail path
Returns:
TempFSFile

Definition at line 1263 of file File.php.

References getBucketThumbName(), and getThumbPath().

File::migrateThumbFile ( thumbName)

Hook into transform() to allow migration of thumbnail files STUB Overridden by LocalFile.

Parameters:
string$thumbName

Definition at line 1289 of file File.php.

File::move ( target)

Move file to the new title.

Move current, old version and all thumbnails to the new filename. Old file is deleted.

Cache purging is done; checks for validity and logging are caller's responsibility

Parameters:
Title$targetNew file name
Returns:
FileRepoStatus

Reimplemented in LocalFile, and ForeignDBFile.

Definition at line 1844 of file File.php.

Return true if the file is of a type that can't be directly rendered by typical browsers and needs to be re-rasterized.

This returns true for everything but the bitmap types supported by all browsers, i.e. JPEG; GIF and PNG. It will also return true for any non-image formats.

Returns:
bool

Reimplemented in FakeDimensionFile.

Definition at line 722 of file File.php.

References canRender().

Return the history of this file, line by line.

Starts with current version, then old versions. Should return an object similar to an image/oldimage database row.

STUB Overridden in LocalFile

Returns:
bool

Reimplemented in LocalFile.

Definition at line 1411 of file File.php.

static File::normalizeExtension ( ext) [static]

Normalize a file extension to the common form, and ensure it's clean.

Extensions with non-alphanumeric characters will be discarded.

Parameters:
string$ext(without the .)
Returns:
string

Definition at line 202 of file File.php.

References $name, and array().

static File::normalizeTitle ( title,
exception = false 
) [static]

Given a string or Title object return either a valid Title object with namespace NS_FILE or null.

Parameters:
Title | string$title
string | bool$exceptionUse 'exception' to throw an error on bad titles
Exceptions:
MWException
Returns:
Title|null

Definition at line 163 of file File.php.

Returns the number of pages of a multipage document, or false for documents which aren't multipage documents.

Returns:
bool|int

Definition at line 1902 of file File.php.

Referenced by MediaHandler\getEntireText(), and scaleHeight().

File::publish ( srcPath,
flags = 0,
array options = array() 
)

Move or copy a file to its public location.

If a file exists at the destination, move it to an archive. Returns a FileRepoStatus object with the archive name in the "value" member on success.

The archive name should be passed through to recordUpload for database registration.

Options to $options include:

  • headers : name/value map of HTTP headers to use in response to GET/HEAD requests
Parameters:
string$srcPathLocal filesystem path to the source image
int$flagsA bitwise combination of: File::DELETE_SOURCE Delete the source file, i.e. move rather than copy
array$optionsOptional additional parameters
Returns:
FileRepoStatus On success, the value member contains the archive name, or an empty string if it was a new file.

STUB Overridden by LocalFile

Reimplemented in LocalFile, and ForeignDBFile.

Definition at line 1749 of file File.php.

File::purgeCache ( options = array())

Purge shared caches such as thumbnails and DB data caching STUB Overridden by LocalFile.

Parameters:
array$optionsOptions, which include: 'forThumbRefresh' : The purging is only to refresh thumbnails

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 1354 of file File.php.

Purge the file description page, but don't go after pages using the file.

Use when modifying file history but not the current data.

Definition at line 1362 of file File.php.

References array().

Purge metadata and all affected pages when the file is created, deleted, or majorly updated.

Definition at line 1374 of file File.php.

File::recordUpload ( oldver,
desc,
license = '',
copyStatus = '',
source = '',
watch = false,
timestamp = false,
User user = null 
)

Record a file upload in the upload log and the image table STUB Overridden by LocalFile.

Parameters:
string$oldver
string$desc
string$license
string$copyStatus
string$source
bool$watch
string | bool$timestamp
null | User$userUser object or null to use $wgUser
Returns:
bool
Exceptions:
MWException

Reimplemented in LocalFile, and ForeignDBFile.

Definition at line 1722 of file File.php.

File::redirectedFrom ( from)
Parameters:
string$from
Returns:
void

Definition at line 2148 of file File.php.

Reset the history pointer to the first element of the history.

Always call this function after using nextHistoryLine() to free db resources STUB Overridden in LocalFile.

Reimplemented in LocalFile.

Definition at line 1421 of file File.php.

File::restore ( versions = array(),
unsuppress = false 
)

Restore all or specified deleted revisions to the given file.

Permissions and logging are left to the caller.

May throw database exceptions on error.

Parameters:
array$versionsSet of record ids of deleted items to restore, or empty to restore all revisions.
bool$unsuppressRemove restrictions on content upon restoration?
Returns:
int|bool The number of file revisions restored if successful, or false on failure STUB Overridden by LocalFile

Reimplemented in LocalFile, and ForeignDBFile.

Definition at line 1881 of file File.php.

static File::scaleHeight ( srcWidth,
srcHeight,
dstWidth 
) [static]

Calculate the height of a thumbnail using the source and destination width.

Parameters:
int$srcWidth
int$srcHeight
int$dstWidth
Returns:
int

Definition at line 1923 of file File.php.

References pageCount().

Referenced by ImageHandler\normaliseParams(), SvgHandler\normaliseParams(), and ImageHandler\validateThumbParams().

static File::splitMime ( mime) [static]

Split an internet media type into its two components; if not a two-part name, set the minor type to 'unknown'.

Parameters:
string$mime"text/html" etc
Returns:
array ("text", "html") etc

Definition at line 251 of file File.php.

Referenced by MIMEsearchPage\execute(), and ApiQueryAllImages\run().

File::thumbName ( params,
flags = 0 
)

Return the file name of a thumbnail with the specified parameters.

Use File::THUMB_FULL_NAME to always get a name like "<params>-<source>". Otherwise, the format may be "<params>-<source>" or "<params>-thumbnail.<ext>".

Parameters:
array$paramsHandler-specific parameters
int$flagsBitfield that supports THUMB_* constants
Returns:
string

Reimplemented in UploadStashFile.

Definition at line 888 of file File.php.

References iconThumb().

Referenced by getThumbDisposition().

File::transform ( params,
flags = 0 
)

Transform a media file.

Parameters:
array$paramsAn associative array of handler-specific parameters. Typical keys are width, height and page.
int$flagsA bitfield, may contain self::RENDER_NOW to force rendering
Returns:
MediaTransformOutput|bool False on failure

Reimplemented in ForeignAPIFile.

Definition at line 977 of file File.php.

Referenced by wfGenerateThumbnail().

File::transformErrorOutput ( thumbPath,
thumbUrl,
params,
flags 
) [protected]

Return either a MediaTransformError or placeholder thumbnail (if $wgIgnoreImageErrors)

Parameters:
string$thumbPathThumbnail storage path
string$thumbUrlThumbnail URL
array$params
int$flags
Returns:
MediaTransformOutput

Definition at line 957 of file File.php.

Referenced by generateAndSaveThumb().

Upgrade the database row if there is one Called by ImagePage STUB.

Reimplemented in LocalFile, and OldLocalFile.

Definition at line 241 of file File.php.

File::userCan ( field,
User user = null 
)

Determine if the current user is allowed to view a particular field of this file, if it's marked as deleted.

STUB

Parameters:
int$field
User$userUser object to check, or null to use $wgUser
Returns:
bool

Reimplemented in OldLocalFile.

Definition at line 2070 of file File.php.

References $ext, getExtension(), and getSha1().

Referenced by RevDelArchivedFileItem\getApiData(), and RevDelFileItem\getApiData().

Was this file ever deleted from the wiki?

Returns:
bool

Definition at line 1826 of file File.php.


Member Data Documentation

bool File::$canRender [protected]

Wether the output of transform() for this file is likely to be valid.

*

Definition at line 126 of file File.php.

string File::$extension [protected]

File extension *.

Definition at line 110 of file File.php.

FSFile bool File::$fsFile [protected]

False if undefined *.

Definition at line 104 of file File.php.

string File::$hashPath [protected]

Relative path including trailing slash *.

Definition at line 116 of file File.php.

bool File::$isSafeFile [protected]

Wether this media file is in a format that is unlikely to contain viruses or malicious content.

Definition at line 130 of file File.php.

string File::$lastError [protected]

Text of last error *.

Definition at line 98 of file File.php.

string File::$name [protected]

The name of a file from its title object *.

Definition at line 112 of file File.php.

Referenced by normalizeExtension().

string File::$pageCount [protected]

Number of pages of a multipage document, or false for documents which aren't multipage documents.

Definition at line 120 of file File.php.

string File::$path [protected]

The storage path corresponding to one of the zones *.

Reimplemented in UnregisteredLocalFile.

Definition at line 114 of file File.php.

Referenced by ForeignAPIFile\getThumbPath(), and readOnlyError().

string File::$redirected [protected]

Main part of the title, with underscores (Title::getDBkey) *.

Definition at line 100 of file File.php.

Title File::$redirectedTitle [protected]

*

Definition at line 102 of file File.php.

Title File::$redirectTitle [protected]

*

Definition at line 124 of file File.php.

FileRepo LocalRepo ForeignAPIRepo bool File::$repo

Some member variables can be lazy-initialised using __get().

The initialisation function for these variables is always a function named like getVar(), where Var is the variable name with upper-case first letter.

The following variables are initialised in this way in this base class: name, extension, handler, path, canRender, isSafeFile, transformScript, hashPath, pageCount, url

Code within this class should generally use the accessor function directly, since __get() isn't re-entrant and therefore causes bugs that depend on initialisation order. The following member variables are not lazy-initialised *

Definition at line 94 of file File.php.

Referenced by ForeignAPIFile\__construct(), ForeignDBFile\newFromRow(), LocalFile\newFromRow(), ForeignDBFile\newFromTitle(), ForeignAPIFile\newFromTitle(), and UnregisteredLocalFile\newFromTitle().

string File::$repoClass = 'FileRepo' [protected]

Required Repository class type *.

Reimplemented in LocalFile, and ForeignAPIFile.

Definition at line 132 of file File.php.

array File::$tmpBucketedThumbCache = array() [protected]

Cache of tmp filepaths pointing to generated bucket thumbnails, keyed by width *.

Definition at line 134 of file File.php.

string File::$transformScript [protected]

URL of transformscript (for example thumb.php) *.

Definition at line 122 of file File.php.

string File::$url [protected]

The URL corresponding to one of the four basic zones *.

Reimplemented in UploadStashFile.

Definition at line 108 of file File.php.

Referenced by ForeignAPIFile\purgeDescriptionPage().

Definition at line 65 of file File.php.

Referenced by UploadBase\performUpload().

Definition at line 53 of file File.php.

Referenced by ApiQueryFilearchive\execute(), and ApiQueryImageInfo\getInfo().

const File::FOR_PUBLIC = 1

Definition at line 68 of file File.php.

Definition at line 69 of file File.php.

const File::RAW = 3

Definition at line 70 of file File.php.

Referenced by ApiQueryImageInfo\getInfo().

const File::RENDER_FORCE = 2

Force rendering even if thumbnail already exist and using RENDER_NOW I.e.

you have to pass both flags: File::RENDER_NOW | File::RENDER_FORCE

Definition at line 63 of file File.php.

Referenced by ExifRotationTest\testRotationRendering(), and ExifRotationTest\testRotationRenderingNoAutoRotate().

Definition at line 73 of file File.php.

Referenced by wfStreamThumb().


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