2013-05-07 93 views
0
header('Content-type: text/csv'); 
    header('Content-Disposition: attachment; filename="file.csv"'); 

    echo "blabla"; 

    $Email = new CakeEmail(); 
    $Email->from(array('[email protected]' => 'Something')); 
    $Email->to($email); 
    $Email->subject('Something'); 
    $Email->send($textEmail); 

如何在发送电子邮件前输出并下载文件?可能吗?或者我必须为自己创建一个临时文件?如果我不发送电子邮件,它会起作用。输出后关闭标题

+0

您使用的是什么版本的CakePHP? – thaJeztah 2013-05-07 21:05:32

+0

@thaJeztah最新 – 2013-05-07 23:58:09

回答

1

一种解决方案可能是:

  1. 创建文件并将其保存到一个tempoary位置
  2. 发送电子邮件附件(使用你在你的问题发布的代码)
  3. 使用低水平PHP方法写入文件内容HTTP流(see this answer
  4. 最后,删除tempoary文件

我认为从你发布的代码的外观来看,你几乎就在那里,只需将订单排序。

我希望这会有所帮助。