Php 未能在Codeigniter中下载文件

Php 未能在Codeigniter中下载文件,php,ajax,codeigniter,Php,Ajax,Codeigniter,我正在使用Codeigniter。我从一个ajax文件调用一个下载控制器,在那里我编写了我在网上找到的代码。但它并没有开始下载文件。我创建了一个onreadystatechange函数,其中有一个div调用myDiv 现在,每当我点击下载按钮,它只显示文件的内容,而不是开始下载。 当我可以在onreadystatechange函数中中止时,我什么都没有得到。 我只是想,只要我点击下载按钮,它应该开始下载文件,这是没有发生。以下是控制器代码: PHP控制器 我想补充一点,我的 xmlhttp.re

我正在使用Codeigniter。我从一个ajax文件调用一个下载控制器,在那里我编写了我在网上找到的代码。但它并没有开始下载文件。我创建了一个onreadystatechange函数,其中有一个div调用myDiv

现在,每当我点击下载按钮,它只显示文件的内容,而不是开始下载。 当我可以在onreadystatechange函数中中止时,我什么都没有得到。 我只是想,只要我点击下载按钮,它应该开始下载文件,这是没有发生。以下是控制器代码:

PHP控制器

我想补充一点,我的

xmlhttp.readyState==4 && xmlhttp.status==200 
他正在工作

不能使用AJAX下载文件。只需将下载按钮张贴到当前的window.location。 CodeIgniter有一个可以为您完成大部分PHP的功能。
您可以在完成ajax调用后下载文件,然后重定向到文件路径。

您可能必须使用文件api。我在codeigniter中搜索了文件api并获得了很多链接。您能告诉我更多详细信息吗?您是否有可能使用XSRF保护而忘记发送令牌?这是什么意思@TimPost。我是这方面的新手。如果您能告诉我应该修改代码的哪一部分,那就太好了。如果您需要任何其他部件代码,我可以发布。我知道您正在谈论CSRF保护。不,我还没有把它变成现实。在我的配置文件中:$config['csrf_protection']=FALSE$config['global_xss_filtering']=TRUE;
   function downloadUploadedFile(dl_file_path,dl_file_name){

        var xmlhttp;                    
        if (window.XMLHttpRequest){
                // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }else{
                // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function(){
                 if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
                    abort();
                     document.getElementById("myDiv").innerHTML=xmlhttp.responseText;       

                 }                  
        }             
        xmlhttp.open("POST","../downloadfilefromserver/pushFileFromServer",true);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");                   
        xmlhttp.send("dl_file_path="+dl_file_path+"&dl_file_name="+dl_file_name);
   }
xmlhttp.readyState==4 && xmlhttp.status==200