iginter 发表于 2024-1-4 18:35:43

CI3.1.13 force_download 没反应,附代码

本帖最后由 iginter 于 2024-1-4 19:00 编辑


public function downloadtpl(){
                $filePath01='uploads/tpls/tpl.txt';
                if(file_exists($filePath01)){
                        $data=file_get_contents($filePath01);
                        echo $data;
                        // $this->load->helper('download');
                        // force_download('stockTpl.txt', $data);
                        
                }else{
                        show_error('bad file');
                }
      }前端为

$('#downfile').click(function(){
            $.post(' downloadtpl');
            
      });



到echo $data这·一行运行是正常的,浏览器能显示文本中的内容;但把下面两句注释去掉后执行,没有任何反应,浏览器调试,发现执行也是200,搜索N多,不明白是哪里有问题,新入CI请指教

zidon 发表于 2024-1-5 22:32:22

public function downloadtpl()
{
    $filePath01 = 'uploads/tpls/tpl.txt';

    if (file_exists($filePath01)) {
      $data = file_get_contents($filePath01);

      $this->load->helper('download');
      force_download('stockTpl.txt', $data, 'application/octet-stream');
    } else {
      show_error('bad file');
    }
}

试试这样可以吗?

iginter 发表于 2024-1-13 15:08:34

zidon 发表于 2024-1-5 22:32
试试这样可以吗?

感谢答复。
还是不行,我换直链下载了。

qq291561792 发表于 2024-2-23 17:22:09

js部分改成

本帖最后由 qq291561792 于 2024-2-23 17:23 编辑

            $.post(' downloadtpl');

改成

if ( $('#iframe_box').length == 0 ){
      var tmpdiv = document.createElement('div');
      tmpdiv.id = 'iframe_box';
      tmpdiv.style='width:1px; height:1px;';
      document.body.appendChild(tmpdiv);
}
var iframe = document.createElement('iframe');
iframe.src = "downloadtpl";
iframe.width = 1;
iframe.height = 1;
$("#iframe_box").find('iframe').remove();
$("#iframe_box").get(0).appendChild(iframe);
页: [1]
查看完整版本: CI3.1.13 force_download 没反应,附代码