MediaWiki  master
UploadFromFile.php
Go to the documentation of this file.
1 <?php
30 class UploadFromFile extends UploadBase {
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 [
87  'status' => UploadBase::FILE_TOO_LARGE,
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.
Definition: UploadBase.php:49
isEmptyFile()
Return true if the file is empty.
Definition: UploadBase.php:311
initializePathInfo( $name, $tempPath, $fileSize, $removeTempFile=false)
Definition: UploadBase.php:264
const FILE_TOO_LARGE
Definition: UploadBase.php:115
Implements regular file uploads.
initialize( $name, $webRequestUpload)
Initialize from a filename and a WebRequestUpload.
static isValidRequest( $request)
WebRequestUpload $mUpload
initializeFromRequest(&$request)