public function upload($url = null, $maxfilesize = 0, $acceptfiletypes = null, $redirecturl = null, $btnTitle = null, $btnClass = null) {
		if (empty($url)) {
			return null;
		}

		if (empty($btnTitle)) {
			$btnTitle = $this->ViewExtension->iconTag('fas fa-file-upload') . '&nbsp;' . $this->_getOptionsForElem('upload.btnTitle');
		}
		if (empty($btnClass)) {
			$btnClass = 'btn-success';
		}
		$inputId = uniqid('input_');
		$progressId = uniqid('progress_');
		$filesId = uniqid('files_');
		$inputOptions = [
			'id' => $inputId,
			'data-progress-id' => $progressId,
			'data-files-id' => $filesId,
			'data-fileupload-url' => $url,
			'data-fileupload-maxfilesize' => $maxfilesize,
			'data-fileupload-acceptfiletypes' => $acceptfiletypes,
			'data-fileupload-redirecturl' => $redirecturl
		];
		$optionsDefault = $this->_getOptionsForElem('upload.inputOpt');
		$result = $this->Html->tag(
			'span',
			$btnTitle . $this->input(null, $inputOptions + $optionsDefault),
			['class' => 'fileinput-button btn ' . $btnClass]
		) .
			$this->Html->tag('br') .
			$this->Html->tag('br') .
			$this->Html->div('progress', $this->Html->div('progress-bar progress-bar-success', ''), ['id' => $progressId]) .
			$this->Html->tag('hr') .
			$this->Html->div('files', '', ['id' => $filesId]) .
			$this->Html->tag('br');

		return $result;
	}