0

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

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);
}

但文件没有下载。

我知道它不工作的原因,但我不知道如何解决它。那么解决方案是什么。您需要更多信息,请随时询问。

4

1 回答 1

0

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

您正在对"/Fast-Docs/index.php/Docs/downloadFile"URL 进行 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,看看这个

于 2012-12-14T19:51:48.130 回答