2016-09-30 21 views
0

コードイグナイタでアップロードしたファイルをダウンロードしようとしていますが、動作しません。 ここに私のコントローラ(download.php)があります。もし誰かが非常に感謝する例を投稿することができます。コードイグナイタを使用してアップロードされたファイルをダウンロードする

<?php 
    class Download extends CI_Controller { 
     public function __construct() { 
     parent::__construct(); 
     $this->load->helper(array('form', 'url')); 
     }  
     public function index() { 
      $this->load->view('vwHomeHeader', $data); 
      $this->load->view('vwHomeMenu', $data); 
      $this->load->view('download', $data); 
      $this->load->view('vwHomeFooter', $data); 
     }  
public function download ($file_path = "") {   
      $this->load->helper('download');    
      $data['download_file'] = $file_path;  
      $this->load->view("download",$data); 
      redirect(current_url(), "refresh");      
     } 
    } 
?> 

そして、ここでのビューファイル(download.php)である

<?php 
if(! empty($download_file)) 
    { 
     $data = file_get_contents(base_url("/upload/".$download_file)); 
     $name = $download_file; 
     force_download($name, $data); 
    } 
?> 

おかげ

+0

予想される動作と実際の動作を説明してください – YakovL

答えて

0

あなたがフィット(コントローラ、ビューの必要はありませんを見るようにあなたがアンカーを使用する場合を除き、変更タグにダウンロードコントローラのURLを入力してください)

if($file) { 
     $filepath = FCPATH . 'uploads/projects/'.$ProjID.'/'.$file['file_name']; 

     header('Content-Description: File Transfer'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Disposition: attachment; filename=' . basename($filepath)); 
     header('Content-Transfer-Encoding: binary'); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($filepath)); 
     ob_clean(); 
     flush(); 
     readfile($filepath); 
     exit; 
    } 
+0

ハイ・ジェイムスしかし、私が本当に必要とするのは、既存のファイルを 'upload'フォルダに表示し、ユーザがファイルを選択したときに – userit75

+0

をダウンロードし、PHPを使ってその場所のファイルを読み込んでリストにしてから別のコントローラーを使用してこのスクリプトを使用します。 –

関連する問題