MediaWiki REL1_39
UploadFromFile.php
Go to the documentation of this file.
1<?php
34 protected $mUpload = null;
35
39 public function initializeFromRequest( &$request ) {
40 $upload = $request->getUpload( 'wpUploadFile' );
41 $desiredDestName = $request->getText( 'wpDestFile' );
42 if ( !$desiredDestName ) {
43 $desiredDestName = $upload->getName();
44 }
45
46 // @phan-suppress-next-line PhanTypeMismatchArgumentNullable getName only null on failure
47 $this->initialize( $desiredDestName, $upload );
48 }
49
55 public function initialize( $name, $webRequestUpload ) {
56 $this->mUpload = $webRequestUpload;
57 $this->initializePathInfo( $name,
58 $this->mUpload->getTempName(), $this->mUpload->getSize() );
59 }
60
65 public static function isValidRequest( $request ) {
66 # Allow all requests, even if no file is present, so that an error
67 # because a post_max_size or upload_max_filesize overflow
68 return true;
69 }
70
74 public function getSourceType() {
75 return 'file';
76 }
77
81 public function verifyUpload() {
82 # Check for a post_max_size or upload_max_size overflow, so that a
83 # proper error can be shown to the user
84 if ( $this->mTempPath === null || $this->isEmptyFile() ) {
85 if ( $this->mUpload->isIniSizeOverflow() ) {
86 return [
88 'max' => min(
89 self::getMaxUploadSize( $this->getSourceType() ),
90 self::getMaxPhpUploadSize()
91 ),
92 ];
93 }
94 }
95
96 return parent::verifyUpload();
97 }
98}
UploadBase and subclasses are the backend of MediaWiki's file uploads.
isEmptyFile()
Return true if the file is empty.
initializePathInfo( $name, $tempPath, $fileSize, $removeTempFile=false)
const FILE_TOO_LARGE
Implements regular file uploads.
initialize( $name, $webRequestUpload)
Initialize from a filename and a WebRequestUpload.
static isValidRequest( $request)
WebRequestUpload $mUpload
initializeFromRequest(&$request)
Object to access the $_FILES array.