2013-04-11 3 views
0

Когда пользователь нажмет кнопку, он загрузит файл csv. Он работает в IE9 и Chrome, но не в Firefox. В Firefox 20 тип контента не устанавливается, поэтому он загружается как HTML-документ Firefox.PHP 5.3 Загрузить CSV

 $filename = 'exportedLogs.csv'; 

     header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
     header('Content-Description: File Transfer'); 
     header("Content-type: text/csv"); 
     header("Content-Disposition: attachment; filename=" .$filename); 
     header("Expires: 0"); 
     header("Pragma: public"); 

     $csv_file = fopen('php://output', 'w'); 

     $header_row = array('id', 'project', 'customer', 'time spent'); 

     fputcsv($csv_file, $header_row); 
     foreach ($logs as $log) { 
      $log = array(
       $log['Log']['id'], 
       $log['Log']['project_id'], 
       $log['Log']['customer_id'], 
       $log['Log']['time_spent'] 
      ); 
      fputcsv($csv_file, $log); 
     } 
     fclose($csv_file); 
+1

ли вы попробовать с 'Content-type' (обратите внимание на капитал T)? – Uby

+0

Да, я также попытался добавить chasset = UTF-8 в Content-type. – Andrew

+0

может помочь еще один вариант заголовка. См. Http://davidwalsh.name/php-force-download – ebadedude

ответ

0

Я узнал, что причина, по которой заголовок не менялся, был вызван cakePhp. Для кого-либо другого, у кого есть этот вопрос, вы должны сделать две вещи:

  1. Добавить 'csv' в Router :: parseExtensions ('csv');
  2. Добавить «.csv» к действию в виде

@ThaJeztah при условии ссылки, которые могут быть полезными для других. Это для json/xml, но принципы могут также использоваться для csv.

http://book.cakephp.org/2.0/en/views/json-and-xml-views.html#json-and-xml-views

+0

Официальный способ в CakePHP 2.x установить типы контента и заголовки ответов, через объект ответа см. В документации здесь [Работа с типами контента] (http://book.cakephp.org/2.0/en/controllers/request -response.html # deal-with-content-types) – thaJeztah

+0

Спасибо, я изменил его. Я также работаю над перемещением его в каталог App/Lib. – Andrew

+0

Возможно, это тоже стоит прочитать, речь идет о JSON и XML, но вы можете использовать ту же логику для CSV [JSON и представления XML] (http://book.cakephp.org/2.0/en/views/json-and -xml-views.html # json-and-xml-views) – thaJeztah

 Смежные вопросы

  • Нет связанных вопросов^_^