我正在尝试在 SwiftMailer 消息中附加 Excel 文件。
诀窍是,我不想保存 Excel 文件,然后附加它,然后删除它,而是我只想生成 Excel 并将其附加到消息中。
该函数允许附加一个OutputByteStream
/**
* Create a new Attachment.
*
* @param string|Swift_OutputByteStream $data
* @param string $filename
* @param string $contentType
*
* @return Swift_Mime_Attachment
*/
public static function newInstance($data = null, $filename = null, $contentType = null)
{
return new self($data, $filename, $contentType);
}
Symfony PHPExcel 包中有一个函数可以创建响应
/**
* Stream the file as Response.
*
* @param \PHPExcel_Writer_IWriter $writer
* @param int $status
* @param array $headers
*
* @return StreamedResponse
*/
public function createStreamedResponse(\PHPExcel_Writer_IWriter $writer, $status = 200, $headers = array())
{
return new StreamedResponse(
function () use ($writer) {
$writer->save('php://output');
},
$status,
$headers
);
}
他们似乎在渲染响应时调用该回调,但是如何将 php://output 保存在变量或其他内容中以将其传递给 newInstance 方法?
我尝试传递响应对象(StreamedResponse),但它只有标题,我还尝试使用 $response->getContent() 并将 $writer->save('php://output') 传递给 newInstance 方法。