public function download(string $filename = '', $data = '', bool $setMime = false)
	{
		if ($filename === '' || $data === '')
		{
			return null;
		}

		$filepath = '';
		if ($data === null)
		{
			$filepath = $filename;
			$filename = explode('/', str_replace(DIRECTORY_SEPARATOR, '/', $filename));
			$filename = end($filename);
		}

		$response = new DownloadResponse($filename, $setMime);

		if ($filepath !== '')
		{
			$response->setFilePath($filepath);
		}
		elseif ($data !== null)
		{
			$response->setBinary($data);
		}

		return $response;
	}
public function download(string $filename = '', $data = '', bool $setMime = false)
	{
		if ($filename === '' || $data === '')
		{
			return null;
		}

		$filepath = '';
		if ($data === null)
		{
			$filepath = $filename;
			$filename = explode('/', str_replace(DIRECTORY_SEPARATOR, '/', $filename));
			$filename = end($filename);
		}

		$response = new DownloadResponse($filename, $setMime);

		if ($filepath !== '')
		{
			$response->setFilePath($filepath);
		}
		elseif ($data !== null)
		{
			$response->setBinary($data);
		}

		return $response;
	}
public function download ( string $ filename = '' , $ data = '' , bool $ setMime = false ) { if ( $ filename === '' || $ data === '' ) { return null ; } $ filepath = '' ; if ( $ data === null ) { $ filepath = $ filename ; $ filename = explode ( '/' , str_replace ( DIRECTORY_SEPARATOR , '/' , $ filename ) ) ; $ filename = end ( $ filename ) ; } $ response = new DownloadResponse ( $ filename , $ setMime ) ; if ( $ filepath !== '' ) { $ response -> setFilePath ( $ filepath ) ; } elseif ( $ data !== null ) { $ response -> setBinary ( $ data ) ; } return $ response ; }
Force a download.

Generates the headers that force a download to happen. And
sends the file to the browser.

@param string        $filename The path to the file to send
@param string|null   $data     The data to be downloaded
@param boolean       $setMime  Whether to try and send the actual MIME type

@return \CodeIgniter\HTTP\DownloadResponse|null
Force a download .