Joomla中的文件上传器

时间:2013-01-17 00:40:58

标签: joomla joomla2.5 swfupload

我一直在关注文档here,以便为现有组件添加(改进的)文件上传部分。

上面示例中的链接到控制器/模型然后处理上传是通过post params形成的:

    post_params: 
    {
            "option" : "com_mycomponent",
            "controller" : "mycontroller",
            "task" : "mytask",
            "id" : "'.$myItemObject->id.'",
            "'.$session->getName().'" : "'.$session->getId().'",
            "format" : "raw"
    }, 

我的问题是使用Joomla 2.5中引入的新控制器方法上传无效:

// Get an instance of the controller prefixed by the component
$controller = JController::getInstance('mycomponent');

// Perform the Request task
$controller->execute(JRequest::getCmd('task'));

// Redirect if set by the controller
$controller->redirect();

这对于加载控制器的旧1.5方法确实可以正常工作(事实上在Joomla 2.5上):

// Create the controller
$classname  = 'mycomponentController'.$controller;
$controller = new $classname( );

// Perform the Request task
$controller->execute( JRequest::getVar('task'));

// Redirect if set by the controller
$controller->redirect();

虽然后一种方法与Joomla 2.5兼容,但遗憾的是我希望将其与之集成的组件使用更新的方法,我宁愿不改变它,因此我可以根据需要不断更新组件,而无需每次都更改它。此外,如果我改变它,我猜我可能会失去现有的功能。

基本上我想知道如何设置post params以便正确调用新的控制器方法!


修改

此后我尝试使用post param配置:

post_params: 
{
    "option" : "com_mycomponent",
    "task" : "mycontroller.mytask",
    "id" : "'.$myItemObject->id.'",
    "'.$session->getName().'" : "'.$session->getId().'",
    "format" : "raw"
}, 

我试图模仿index.php?option=com_mycomponent&task=mycontroller.mytask等行的链接。但这仍然不起作用

1 个答案:

答案 0 :(得分:1)

您需要在index.php中定义以下变量

define('_JREQUEST_NO_CLEAN', 1);

我正在寻找原因,我发现了 - http://docs.joomla.org/Framework_Compatibility

注意 - 如果这不起作用,请删除"format" : "raw"

如果它不起作用,请告诉我。