/
githubmirror
/
joomla-cms
Обзор
Документация
Войти
/
githubmirror
/
joomla-cms
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
5.4-dev
libraries/src/Input/Files.php
152 строки
4 KB
Christian Heel
[5.2] [PHP8.4] Update for nullable type declaration (#43323)
06 авг 2024, 10:51
Не верифицирован
06 авг 2024, 10:51
aa475c1
Код
Авторство
О чём код?
<?php /** * Joomla! Content Management System * * @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Input; use Joomla\CMS\Filter\InputFilter; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; // phpcs:enable PSR1.Files.SideEffects /** * Joomla! Input Files Class * * @since 1.7.0 * * @deprecated 4.3 will be removed in 6.0. * Use Joomla\Input\Files instead */ class Files extends Input { /** * The pivoted data from a $_FILES or compatible array. * * @var array * @since 1.7.0 * * @deprecated 4.3 will be removed in 6.0. * Use Joomla\Input\Files instead */ protected $decodedData = []; /** * The class constructor. * * @param ?array $source The source argument is ignored. $_FILES is always used. * @param array $options An optional array of configuration options: * filter : a custom InputFilter object. * * @since 3.0.0 * * @deprecated 4.3 will be removed in 6.0. * Use Joomla\Input\Files instead */ public function __construct(?array $source = null, array $options = []) { if (isset($options['filter'])) { $this->filter = $options['filter']; } else { $this->filter = InputFilter::getInstance(); } // Set the data source. $this->data = &$_FILES; // Set the options for the class. $this->options = $options; } /** * Gets a value from the input data. * * @param string $name The name of the input property (usually the name of the files INPUT tag) to get. * @param mixed $default The default value to return if the named property does not exist. * @param string $filter The filter to apply to the value. * * @return mixed The filtered input value. * * @see InputFilter::clean() * @since 1.7.0 * * @deprecated 4.3 will be removed in 6.0. * Use Joomla\Input\Files instead */ public function get($name, $default = null, $filter = 'cmd') { if (isset($this->data[$name])) { $results = $this->decodeData( [ $this->data[$name]['name'], $this->data[$name]['type'], $this->data[$name]['tmp_name'], $this->data[$name]['error'], $this->data[$name]['size'], ] ); // Prevent returning an unsafe file unless specifically requested if (strtoupper($filter) !== 'RAW') { $isSafe = InputFilter::isSafeFile($results); if (!$isSafe) { return $default; } } return $results; } return $default; } /** * Method to decode a data array. * * @param array $data The data array to decode. * * @return array * * @since 1.7.0 * * @deprecated 4.3 will be removed in 6.0. * Use Joomla\Input\Files instead */ protected function decodeData(array $data) { $result = []; if (\is_array($data[0])) { foreach ($data[0] as $k => $v) { $result[$k] = $this->decodeData([$data[0][$k], $data[1][$k], $data[2][$k], $data[3][$k], $data[4][$k]]); } return $result; } return ['name' => $data[0], 'type' => $data[1], 'tmp_name' => $data[2], 'error' => $data[3], 'size' => $data[4]]; } /** * Sets a value. * * @param string $name The name of the input property to set. * @param mixed $value The value to assign to the input property. * * @return void * * @since 1.7.0 * * @deprecated 4.3 will be removed in 6.0. * Use Joomla\Input\Files instead */ public function set($name, $value) { } }