【问题标题】:Joomla backend component file upload for custom component自定义组件的 Joomla 后端组件文件上传
【发布时间】:2015-08-22 15:20:17
【问题描述】:
我是 Joomla 的新手!
我正在创建自定义 joomla(3.4.1) 组件,并且取得了不错的进展。我使用了几乎所有字段来添加/编辑表单之一,除了文件上传之外,所有工作都很好。
实际上它在我的表格字段中节省了价值,但我真的不知道如何/在哪里编写 Joomla!上传文件的代码。
我参考这个链接https://docs.joomla.org/Creating_a_file_uploader_in_your_component 但我根本不需要任何上传器,只想手动上传,也找到 type="media" 字段,但似乎只允许上传图片。
现在我应该采取什么下一步措施才能将文件上传到仅限管理员使用的特定文件夹中。
我知道控制器中的一种方法可能是覆盖保存方法并开始上传。
但是有什么合适的方法吗???
谢谢。
【问题讨论】:
标签:
php
file-upload
joomla3.0
backend
joomla-extensions
【解决方案1】:
嗯,
我是这么想的!
我的控制器文件我写了这段代码,如果能找到最好的方法,我会回来。
<?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();
}
}