Версия для печати

Загрузка файлов в Joomla 3

Оцените материал
(3 голосов)

Загрузка файлов

Упрощенная форма загрузки файла выглядит следующим образом:

<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 );
}