I have a field in my form which is of type file. When the user clicks on the save icon, I want to naturally upload the file to the server and save the filename in the database. I tried testing this out by echoing the filename but it doesn't seem to be working. Also, how do I add the filename to the database? Is it done in the model? Thanks!
controllers/customcom.php
jimport('joomla.filesystem.file');
class CustomComControllerCustomCom extends JControllerForm
{
function save()
{
$file = JRequest::getVar('img_url', null, 'files', 'array');
$filename = JFile::makeSafe($file['name']);
echo $filename;
}
}
models/forms/customcom.xml
<?xml version="1.0" encoding="utf-8"?>
<form enctype="multipart/form-data">
<fieldset>
<field
name="img_url"
type="file"
label="Image upload"
description=""
size="40"
class="inputbox"
default=""
/>
</fieldset>
</form>
Just figured it out.
The correct way is
$jinput = JFactory::getApplication()->input;
$files = $jinput->files->get('jform');
$file = $files['img_url'];
That should do the trick. The $file array then holds the following keys:
I've deleted my original answer as it was misleading.