2016-10-08 28 views
0

私は基本的にユーザの要求に応じてデータベースからデータを取得し、それをcsvファイルにエクスポートしてから自動的にそのcsvファイルをダウンロードします。機能は私が期待したように動作しますが、何らかの理由でファイルがユーザーのコンピュータにダウンロードされたときに、その中にランダムなHTMLデータがいくつかあります。私は、サーバー上に作成されたファイルをチェックして、その中にランダムなテキストがないので、ファイルにどのように追加されているのかよくわかりません。以下は、私が使用している機能です:PHPヘッダを使ったPHPファイルのダウンロード

private function _exporte() 
{ 
    $file_name = "/path-". date('d-m-Y') .".csv"; 

    if(file_exists($file_name) == TRUE) 
     unlink($file_name); 

    $file = fopen($file_name, 'w') or die ("Can not open file to write"); 

    $file_vars = array(); 

    $data = $this->name_model->get_data(); 

    $headerDisplayed = false; 

    foreach($data as $row) 
    { 
     $file_vars['Code'] = $row['code']; 
     $file_vars['Category'] = $row['category']; 
     $file_vars['Category ID'] = $row['category_id']; 

     if(!$headerDisplayed) 
      fputcsv($file, array_keys($file_vars)); 

     $headerDisplayed = true; 

     fputcsv($file, array_values($file_vars)); 
    } 

    if (file_exists($file_name)) 
    { 
     header('Content-Description: File Transfer'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Disposition: attachment; filename='.basename($file_name)); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($file_name)); 
     readfile($file_name); 
    } 
} 

参照のためにcsvファイルのイメージを追加しました。 enter image description here

答えて

0

あなたはダウンロードのイメージのために怒鳴るような関数を使用することができます。

function getLogo($path_to_your_file) 
    {   
     header("Content-Type: image/jpeg"); 
     return file_get_contents($path_to_your_file); 
    } 
+0

は、しかし、私は、彼らができるように、上記のエクスポート機能の中に作成される一方でcsvファイルをダウンロードするには、すべてのユーザーが必要とするあなたの時間をありがとうそれを変更してアップロードすることができます。 – user4676307

+0

"readfile"メソッドを "file_get_contents"に置き換えます –

+0

実際のデータを持たないランダムhtmlデータのみをエクスポートします – user4676307

関連する問題