File 自定义Joomla组件的文件上载表单

File 自定义Joomla组件的文件上载表单,file,file-upload,joomla,joomla2.5,File,File Upload,Joomla,Joomla2.5,我的表单中有一个文件类型的字段。当用户单击save图标时,我想自然地将文件上传到服务器并将文件名保存在数据库中。我尝试通过回显文件名来测试这一点,但它似乎不起作用。另外,如何将文件名添加到数据库中?它是在模型中完成的吗?谢谢 controllers/customcom.php jimport('joomla.filesystem.file'); class CustomComControllerCustomCom extends JControllerForm {

我的表单中有一个文件类型的字段。当用户单击save图标时,我想自然地将文件上传到服务器并将文件名保存在数据库中。我尝试通过回显文件名来测试这一点,但它似乎不起作用。另外,如何将文件名添加到数据库中?它是在模型中完成的吗?谢谢

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>

从Media manager获得灵感:

请注意,这个组件非常旧(重构正在准备中)

我刚想出来

正确的方法是

$jinput = JFactory::getApplication()->input;
$files = $jinput->files->get('jform');
$file = $files['img_url'];
这应该能奏效。 $file数组然后保存以下键:

  • 错误
  • 名字
  • 大小
  • tmp_名称
  • 类型
我删除了我的原始答案,因为它具有误导性

$jinput = JFactory::getApplication()->input;
$files = $jinput->files->get('jform');
$file = $files['img_url'];