Загрузка файлов
Упрощенная форма загрузки файла выглядит следующим образом:
<form action="index.php?option=com_mycomponent/form_handler.php" method="post" enctype="multipart/form-data">
<input type="file" name="Filedata" />
<input type="submit" />
</form>
При нажатии на кнопку отправки, браузер будет загружать файл в запросе POST, передачей управления Joomla, который будет вызывать components / com_mycomponent / form_handler.php
. Это будет включать в себя код, подобный следующему. Переменная $somepath
должен быть установлен в какой-то путь, где веб-сервер имеет разрешение на создание файлов.
// Проверка , что этот файл включен в Joomla!
defined('_JEXEC') or die( 'Restricted access' );
// Получить массив данных файла из запроса.
$file = JFactory::getApplication->input->get( 'Filedata', '', 'files', 'array' );
// Сделать имя файла безопасным.
jimport('joomla.filesystem.file');
$file['name'] = JFile::makeSafe($file['name']);
// Переместить загруженный файл в постоянное место.
if (isset( $file['name'] )) {
// Убедитесь , что полный путь к файлу является безопасным.
$filepath = JPath::clean( $somepath.'/'.strtolower( $file['name'] ) );
// Переместить загруженный файл.
JFile::upload( $file['tmp_name'], $filepath );
}