自定义组件

时间:2015-06-08 08:29:47

标签: php file-upload joomla3.0 backend joomla-extensions

我是Joomla的新人! 我正在创建自定义joomla(3.4.1)组件,我正在取得良好进展。我使用了几乎所有字段中的一个表单来添加/编辑除了文件上传之外的所有工作。

实际上它可以节省我桌子的价值,但我真的不知道如何/在哪里写Joomla!上传文件的代码。

我引用此链接https://docs.joomla.org/Creating_a_file_uploader_in_your_component但我根本不需要任何上传器,只想手动上传,也找到type =“media”字段,但似乎只允许上传图片。

现在,为了将文件上传到仅限管理员限制的特定文件夹,我应该采取下一步措施。

我知道控制器中的一个方法可以覆盖保存方法并开始上传。

但是有没有正确的方法呢?

谢谢。

1 个答案:

答案 0 :(得分:2)

那么,

我已经通过这种方式想出了这件事!

我的控制器文件是我编写的代码,如果能得到最好的方法,我会回来的。

<?php

defined('_JEXEC') or die('Restricted access');
jimport('joomla.filesystem.file');

class HelloWorldControllerHelloWorld extends JControllerForm{
    public function save($data = array(), $key = 'id')
    {
        $jinput = JFactory::getApplication()->input;
        $files = $jinput->files->get('jform');      

        $fileinfo =pathinfo($files['file_name']['name']);

        $ext = $fileinfo['extension'];
        $filename = time().".$ext";     

        $tmp_file = $files['file_name']['tmp_name'];
        $dest = "media/".JText::_('COM_APISLIDE')."/upload/".$filename;

        if (JFile::upload($tmp_file, $dest)) {
              // successed :)
        } else {              
             // failed :(
        }        
        parent::save();
    }
}