private function uploadCommon(array $params, $comment, $text = null, $overwrite = false)
{
// Check whether to overwrite existing file
if ($this->exists && !$overwrite) {
$this->error = array();
$this->error['file'] = 'Cannot overwrite existing file';
return false;
}
// Collect upload parameters
$params['filename'] = $this->filename;
$params['comment'] = $comment;
$params['ignorewarnings'] = $overwrite;
$params['token'] = $this->edittoken;
if (!is_null($text)) {
$params['text'] = $text;
}
// Upload file, or handle error
$r = $this->wikimate->upload($params);
if (isset($r['upload']['result']) && $r['upload']['result'] == 'Success') {
// Update the file's properties
$this->info = $r['upload']['imageinfo'];
$this->error = null;
// Reset the error status
return true;
}
// Return error response
if (isset($r['error'])) {
$this->error = $r['error'];
} else {
$this->error = array();
$this->error['file'] = 'Unexpected upload response: ' . $r['upload']['result'];
}
return false;
}