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