diff options
Diffstat (limited to 'includes/api/ApiUpload.php')
-rw-r--r-- | includes/api/ApiUpload.php | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/includes/api/ApiUpload.php b/includes/api/ApiUpload.php index 7661625c..65403ec4 100644 --- a/includes/api/ApiUpload.php +++ b/includes/api/ApiUpload.php @@ -313,6 +313,7 @@ class ApiUpload extends ApiBase { $result['result'] = 'Continue'; $result['offset'] = $totalSoFar; } + $result['filekey'] = $filekey; return $result; @@ -580,17 +581,28 @@ class ApiUpload extends ApiBase { $this->dieUsage( $msg, 'filetype-banned', 0, $extradata ); break; case UploadBase::VERIFICATION_ERROR: + $params = $verification['details']; + $key = array_shift( $params ); + $msg = $this->msg( $key, $params )->inLanguage( 'en' )->useDatabase( false )->text(); ApiResult::setIndexedTagName( $verification['details'], 'detail' ); - $this->dieUsage( 'This file did not pass file verification', 'verification-error', + $this->dieUsage( "This file did not pass file verification: $msg", 'verification-error', 0, array( 'details' => $verification['details'] ) ); break; case UploadBase::HOOK_ABORTED: - $this->dieUsage( "The modification you tried to make was aborted by an extension hook", - 'hookaborted', 0, array( 'error' => $verification['error'] ) ); + if ( is_array( $verification['error'] ) ) { + $params = $verification['error']; + } elseif ( $verification['error'] !== '' ) { + $params = array( $verification['error'] ); + } else { + $params = array( 'hookaborted' ); + } + $key = array_shift( $params ); + $msg = $this->msg( $key, $params )->inLanguage( 'en' )->useDatabase( false )->text(); + $this->dieUsage( $msg, 'hookaborted', 0, array( 'details' => $verification['error'] ) ); break; default: $this->dieUsage( 'An unknown error occurred', 'unknown-error', - 0, array( 'code' => $verification['status'] ) ); + 0, array( 'details' => array( 'code' => $verification['status'] ) ) ); break; } } @@ -788,7 +800,9 @@ class ApiUpload extends ApiBase { 'comment' => array( ApiBase::PARAM_DFLT => '' ), - 'text' => null, + 'text' => array( + ApiBase::PARAM_TYPE => 'text', + ), 'watch' => array( ApiBase::PARAM_DFLT => false, ApiBase::PARAM_DEPRECATED => true, |