Проблема в том, что поле файла Joomla является не чем иным, как средством создания полей формы для выбора файла. Это означает, что в ядре нет встроенной логики для обработки стороны сервера файлов при отправке формы. Вам нужно будет добавить логику к контроллеру компонентов, чтобы захватить информацию из запроса и сохранить ее там, где это необходимо. Я вставил образец метода из контроллера проекта, который требовал загрузки файлов.
public function upload() {
//JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$jinput = JFactory::getApplication()->input;
jimport('joomla.filesystem.file');
// We're putting all our files in a directory called images.
$path = 'images/uploaded/';
// The posted data, for reference
$file = $jinput->get('value', '', 'string');
$name = $jinput->get('name', '', 'string');
// Get the mime
$getMime = explode('.', $name);
$mime = end($getMime);
// Separate out the data
$data = explode(',', $file);
echo "<h1>" . $path . $name . "</h1>";
// Encode it correctly
$encodedData = str_replace(' ','+',$data[1]);
$decodedData = base64_decode($encodedData);
//if (JFile::upload($decodedData, $path . $name)) {
if(file_put_contents($path . $name, $decodedData)) {
JError::raiseNotice(null, $name . ": uploaded successfully");
} else {
// Show an error message should something go wrong.
JError::raiseError(null, "Something went wrong. Check that the file isn't corrupted");
}
}
Если вы уже написали загрузки файла метода контроллера на стороне сервера и вы подтвердили все другие предложения, не проблема, вы должны включить код в ваш вопрос, есть вероятность, что там ошибка происходит.
Хм, это странно. Если я добавлю «image/*», то при просмотре файлов для меня не появятся, только папки – Lodder
Для меня отображаются все файлы изображений, но загрузка ограничена. странно. Как в backend, так и в интерфейсе. – user1876234
Можете ли вы показать PHP, который вы используете для управления файлом? Это может быть вызвано этим. Если у вас нет PHP для управления им, то, пожалуйста, убедитесь, что вы делаете, поскольку предоставленный вами XML-код ничего не сделает, кроме отображения поля формы. – Lodder