将Excelstream附加到swiftmailer消息?

我试图附加一个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包中有一个函数来创build响应

 /** * 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 ); } 

他们似乎调用callback,当他们正在呈现响应,但我怎样才能保存的PHP:/ /输出variables或东西传递给newInstance方法?

我尝试传递响应对象(StreamedResponse),但它只有头,我也尝试了$ response-> getContent()并传递$ writer-> save('php:// output')到newInstance方法。

使用stream_get_contents

 $attachment = \Swift_Attachment::newInstance(stream_get_contents(createStreamedResponse(...)), 'test.xls', 'application/vnd.ms-excel'); 

(不知道帽子你的实际mimetype是)