这是对控制器功能的调用:
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);
}
但文件未下载。
我知道它不工作的原因,但我不知道如何解决它。所以解决方案是什么?你需要更多的信息,随便问。
答案 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。