我们使用MongoDB GridFS在我们的CRM中存储附件。现在我们应该能够使用SwiftMailer在电子邮件中发送选定的附件。有没有办法正确完成而不先将文件存储到磁盘? GridFS PHP api提供文件作为以下对象。
http://php.net/manual/en/class.mongogridfsfile.php#mongogridfsfile.props.file
为了在浏览器中下载文件,我们可以直接流式传输而无需tmp文件。有没有人解决这个问题,将GridFS文件附加到电子邮件?
更新1:我刚刚意识到我可以根据字节数据创建附件,例如
$mf=$a->getFile()->getMongoGridFSFile();
$attachment = \Swift_Attachment::newInstance($mf->getBytes(), $mf->getFilename(), $a->getMimeType());
...但是无法想象它适用于大型文件,因为它们在发送时保存在内存中......