【问题标题】:how can I download my file residing in local repository如何下载驻留在本地存储库中的文件
【发布时间】:2021-06-10 05:38:13
【问题描述】:

我是 CodeIgniter 的新手,正在下载一个文件。但是,我想下载一个驻留在本地计算机上的文件,我可以通过提供路径来找到该文件,该文件也以File 类型下载,但是,我希望我的文件位于@987654322 @格式

这是我控制器的下载功能:

public function download()
{   
        $state_id=$this->input->post('state'); // gets me the state-id from viw's dropdown
        $this->load->helper('download'); // Load download helper
        $file="C:\\Users\usernew\\Desktop\\New folder\\".$state_id.".csv";
        $filename=$state_id.'.csv';
        
    
        if (file_exists($file))
        {
                $data = file_get_contents($file);       //check file exists 
                force_download($fileName,$data);
            }
            else{
                echo"not working!";
            }    
        }   

我哪里错了?

【问题讨论】:

    标签: php csv codeigniter model-view-controller controller


    【解决方案1】:

    force_download() 接受两个参数,即文件名和要写入该文件的数据。由于该文件已经包含一些示例数据,因此,函数如下所示:

     public function download()
    {   
            $state_id=$this->input->post('state'); // gets me the state-id from viw's dropdown
            $this->load->helper('download'); // Load download helper
            $filename=$state_id.'.csv';
            $file="C:\\Users\usernew\\Desktop\\New folder\\".$filename;
            
            
        
            if (file_exists($file))                    //check file exists
            {
                    force_download($file,NULL);      //NULL as the file already has data
                }
                else{
                    echo"not working!";
                }    
            }   
    

    【讨论】:

      【解决方案2】:

      您可以使用 header 函数代替 force_download:

      $file="C:\\Users\usernew\\Desktop\\New folder\\".$state_id.".csv";
      $filename=$state_id.'.csv';
      
      header("Content-type: text/csv");
      header('Content-Disposition: attachment; filename='.$filename);
      readfile( $file );
      

      【讨论】:

      • @parshanr 上面的代码运行良好,将下载具有预期名称的文件,但问题是它显式创建了一个没有数据的新文件,因此下载的文件没有数据存储在其中。参考答案:stackoverflow.com/a/66621956/11635281
      猜你喜欢
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2012-01-25
      • 2018-03-08
      相关资源
      最近更新 更多