我留下一个简单的文字,以便快速阅读。
我正在试图弄清楚如何通过sendgrid发送csv文件,csv与数组一起使用,它是
fputcsv($output, array('Column 1', 'Column 2', 'Column 3'));
这不是来自服务器的真实文件,只是创建文件并将数据导出给用户。
问题是... addAttachment或setAttachment返回了一些错误,他们需要从路径或目录中找到文件的位置。
如何在不通过sendgrid从目录请求现有文件的情况下附加文件?
编辑:
//Function to generate csv file
private function array2csv($array) {
if (count($array) == 0) {
return null;
}
$lista = $array;
ob_start();
$fp = fopen('php://output', 'w');
foreach ($array as $campos) {
fputcsv($fp, $campos);
}
fclose($fp);
return ob_get_clean();
}
//Call a function to send csv file
public function sendCSVFile(){
$data = $this->reqProducts();
//prepareParams is csv templating and formatting function.
$products = $this->prepareParams($data);
$products = $this->array2csv($products);
$body = "Hello, you have an attached file."
$email = new SendGrid\Email();
$email
->addTo('foo@bar.com')
->setFrom('me@bar.com')
->setSubject($body)
->setText($body)
->setHtml('<strong>Hello World!</strong>')
->addAttachment($products);
}
错误输出是: