我需要创建csv,然后将其作为附件发送到邮件。我正在使用标题,这是让我下载的csv文件。如果我删除下面的CSV则没有创建。
header('Content-Type: text/csv');
我不想下载该文件,而是将其保存在一些临时文件夹中,然后将其作为邮件附件发送。
下面是我所做的。
$this->load->library('excel');
$filename = tempnam(sys_get_temp_dir(), 'export') . '.csv';
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename="'.$filename.'"');
//$f = fopen('php://output', 'w');
$f = fopen($filename, 'w');
$csv_header = array("name","number","address");
fputcsv($f, $csv_header);
ob_flush();
flush();
foreach ($data as $value) {
$data_array = array($value['name'],$value['number'],$value['address']);
fputcsv($f, $data_array);
}
}
fclose($f);
1条答案
按热度按时间a14dhokn1#
删除这些标题行,因为它们用于将文件下载到浏览器。
在服务器端,您应该只需要
1.使用有意义的变量名
1.对于发送电子邮件,我建议使用PHP mailer library。它使发送电子邮件变得超级简单,你可以添加一个附件,只需要一行。