I am struggling to get an admin form file upload to work using JInput. I have tried pretty much every permutation of $input->files->get(''); I can think of with no luck. No matter what I do, it always returns an empty array. If I print the contents of the $input object, I can see the file data. Similarly, if I print the contents of the $_FILES super variable I can see the file data. So I know it is uploading correctly, the problem becomes how can I use Joomla! standards to work with those files?
Here is the PHP in the save() function of my model:
$input = JFactory::getApplication()->input; print_r($input->files); // this shows the files data // $code_file = $input->files->get('jform'); // an example of what I've tried // $code_file = $input->files->get('jform[code_file]'); // $code_file = $input->files->get("jform['code_file']"); $code_file = $input->files->get('code_file'); print_r($code_file); // this always returns an empty array die(); I have defined the form field as follows:
<!-- code_file --> <field accept=".xlsx" description="COM_CUSTOM_FORM_CODE_FILE_DESC" label="COM_CUSTOM_FORM_CODE_FILE_LBL" name="code_file" type="file" /> That filed is then used in the view. Here is the output HTML (abbreviated for simplicity):
<form action="<?php echo JRoute::_('index.php?option=com_custom&layout=edit&id=' . (int) $this->item->id); ?>" method="post" enctype="multipart/form-data" name="adminForm" id="my-form" class="form-validate"> ... <input type="file" name="jform[code_file]" id="jform_code_file" accept=".xlsx" aria-invalid="false"> ... </form> Where am I going wrong?