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

    echo "blabla";

    $Email = new CakeEmail();
    $Email->from(array('no-reply@something.com' => 'Something'));
    $Email->to($email);
    $Email->subject('Something');
    $Email->send($textEmail);

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

4

1 回答 1

1

一种解决方案可能是:

  1. 创建文件并将其保存到临时位置
  2. 发送带有附件的电子邮件(使用您在问题中发布的代码)
  3. 使用低级 PHP 方法将文件内容写入 HTTP 流(请参阅此答案
  4. 最后,删除临时文件

我认为从您发布的代码的外观来看,您就快到了,只需整理一下订单即可。

我希望这有帮助。

于 2013-05-07T20:50:21.753 回答