0

在我的项目 excel 布局中我添加

     <?php

      header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
      header ("Cache-Control: no-cache, must-revalidate");
      header ("Pragma: no-cache");
      header ("Content-type: application/vnd.ms-excel");/*.pdf,.xls*/
      header ("Content-Disposition: attachment; filename=Report.xls" );
      header ("Content-Description: Generated Report" );
     ?>
     <?php echo $content_for_layout ?> 

在我的控制器中

     function export_xls($id=null) { 
        $this->render('export_xls', 'export_xls');
  } 

并将 export_xls.ctp 保留为空白。

在 Windows 中,它创建 report.xls 文件,但 mac os safari 浏览器下载为 report.xls.html 我不明白该怎么做。我使用的是 cakephp 2.1

请帮我解决这个问题.....

4

2 回答 2

0

.ctp 或 export_xls 函数中需要有内容。您实际上并没有为文件工作输出任何内容。

于 2013-01-16T03:47:49.263 回答
0

您的标题看起来不错(尽管我认为Content-type应该是Content-Type),但请尝试使用 Cake 内置的响应类。适用于 XLS 文件。在您的控制器中:

$this->response->file($path,array('download' => true, 'name' => 'Report.xls'));
return $this->response;
于 2015-03-13T14:58:50.437 回答