控制器功能中的codeigniters辅助函数未执行

时间:2012-12-14 18:10:31

标签: php codeigniter

这是对控制器功能的调用:

function downloadFile(fn,con)
        {
            var loadUrl = "/Fast-Docs/index.php/Docs/downloadFile";
                alert('hi');
        $.post(  
            loadUrl,  
            {content: con, filename: fn});  
        }

控制器功能:

public function downloadFile()
{
    $this->load->helper('download');
    $content=$this->input->post('content');
    $fn=$this->input->post('filename');
    return force_download($fn,$content);
}

但文件未下载。

我知道它不工作的原因,但我不知道如何解决它。所以解决方案是什么?你需要更多的信息,随便问。

1 个答案:

答案 0 :(得分:0)

我不完全明白你要做什么。无论如何,你的代码中存在一个基本问题。

您正在对"/Fast-Docs/index.php/Docs/downloadFile"网址发出ajax请求,但您忽略了响应。

我的建议是:忘记ajax并使用简单的链接。

<a href="/Fast-Docs/index.php/Docs/downloadFile/myfile.png">Download file</a>

然后在控制器中:

public function downloadFile($filename)
{
    //Validate file name
    if($filename != 'validFileName') die('Invalid file name');

    //Set headers
    $this->load->helper('download');
    $content = file_get_contents('/images/' . $filename);
    force_download($filename, $content);
}

如果由于某种原因您无法使用链接,您可以重定向到下载页面(通过设置window.location)。

如果您确实需要使用ajax,请查看this