<?php
/**
- *
- *
- * Created on Aug 21, 2008
- *
* Copyright © 2008 - 2010 Bryan Tong Minh <Bryan.TongMinh@Gmail.com>
*
* This program is free software; you can redistribute it and/or modify
$this->checkPermissions( $user );
// Fetch the file (usually a no-op)
- /** @var $status Status */
+ /** @var Status $status */
$status = $this->mUpload->fetchFile();
if ( !$status->isGood() ) {
$this->dieStatus( $status );
$this->mParams['filekey'], $this->mParams['filename'], !$this->mParams['async']
);
} elseif ( isset( $this->mParams['file'] ) ) {
+ // Can't async upload directly from a POSTed file, we'd have to
+ // stash the file and then queue the publish job. The user should
+ // just submit the two API queries to perform those two steps.
+ if ( $this->mParams['async'] ) {
+ $this->dieWithError( 'apierror-cannot-async-upload-file' );
+ }
+
$this->mUpload = new UploadFromFile();
$this->mUpload->initialize(
$this->mParams['filename'],
break;
case UploadBase::HOOK_ABORTED:
- $this->dieWithError( $params, 'hookaborted', [ 'details' => $verification['error'] ] );
+ $msg = $verification['error'] === '' ? 'hookaborted' : $verification['error'];
+ $this->dieWithError( $msg, 'hookaborted', [ 'details' => $verification['error'] ] );
break;
default:
$this->dieWithError( 'apierror-unknownerror-nocode', 'unknown-error',
*/
protected function handleStashException( $e ) {
switch ( get_class( $e ) ) {
- case 'UploadStashFileNotFoundException':
+ case UploadStashFileNotFoundException::class:
$wrap = 'apierror-stashedfilenotfound';
break;
- case 'UploadStashBadPathException':
+ case UploadStashBadPathException::class:
$wrap = 'apierror-stashpathinvalid';
break;
- case 'UploadStashFileException':
+ case UploadStashFileException::class:
$wrap = 'apierror-stashfilestorage';
break;
- case 'UploadStashZeroLengthFileException':
+ case UploadStashZeroLengthFileException::class:
$wrap = 'apierror-stashzerolength';
break;
- case 'UploadStashNotLoggedInException':
+ case UploadStashNotLoggedInException::class:
return StatusValue::newFatal( ApiMessage::create(
[ 'apierror-mustbeloggedin', $this->msg( 'action-upload' ) ], 'stashnotloggedin'
) );
- case 'UploadStashWrongOwnerException':
+ case UploadStashWrongOwnerException::class:
$wrap = 'apierror-stashwrongowner';
break;
- case 'UploadStashNoSuchKeyException':
+ case UploadStashNoSuchKeyException::class:
$wrap = 'apierror-stashnosuchfilekey';
break;
default:
$this->mParams['text'] = $this->mParams['comment'];
}
- /** @var $file LocalFile */
+ /** @var LocalFile $file */
$file = $this->mUpload->getLocalFile();
// For preferences mode, we want to watch if 'watchdefault' is set,
$result['result'] = 'Poll';
$result['stage'] = 'queued';
} else {
- /** @var $status Status */
+ /** @var Status $status */
$status = $this->mUpload->performUpload( $this->mParams['comment'],
$this->mParams['text'], $watch, $this->getUser(), $this->mParams['tags'] );
}
public function getHelpUrls() {
- return 'https://www.mediawiki.org/wiki/API:Upload';
+ return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Upload';
}
}