Sendgrid-nodejs: Base64 编码的 PDF 作为附件

创建于 2016-04-15  ·  4评论  ·  资料来源: sendgrid/sendgrid-nodejs

我有一个经过 base64 编码的 PDF 文件,想将其附加到电子邮件中。 当我用以下代码附加它时,发送的电子邮件附加了损坏的 PDF:

email.addFile({
    filename: 'my-file.pdf',
    content: aBase64EncodedPDF,
    contentType: 'application/pdf',
}); 

最有用的评论

您将使用上述代码添加一个 base64 字符串作为附件,这意味着您需要保存附件并在另一端对其进行解码。 我想你可能真的想这样做:

email.addFile({
    filename: 'my-file.pdf',
    content: new Buffer(aBase64EncodedPDF, 'base64'),
    contentType: 'application/pdf',
}); 

所有4条评论

您将使用上述代码添加一个 base64 字符串作为附件,这意味着您需要保存附件并在另一端对其进行解码。 我想你可能真的想这样做:

email.addFile({
    filename: 'my-file.pdf',
    content: new Buffer(aBase64EncodedPDF, 'base64'),
    contentType: 'application/pdf',
}); 

@deaks-kt 感谢您的贡献!

@danielflippance是否解决了您的问题?

谢谢(你的)信息。 该解决方案会使使用的内存量增加一倍吗? IE:我现在有一个 base64 字符串和一个包含相同信息的缓冲区。 如果是这样,这将显着增加我们服务器上的内存使用量,因为 PDF 非常大,因此不适用于我们的情况。 我将研究我们是否可以在渲染到 base64 之前检索缓冲区。

我怀疑它会接近两倍。 每 4 个 Base64 得到 3 个字节,这减少了 25%,但我预计数组会有一些开销。 如果您真的遇到困难并且必须使用 base64,那么我建议您调查 pull request #219 并查看https://github.com/form-data/form-data (这是该库通过请求使用的内容)看看你是否可以流式传输 base64 解码,或者甚至可以指定表单数据已经在 form.append 中编码

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

nicoasp picture nicoasp  ·  3评论

TobiahRex picture TobiahRex  ·  3评论

prasoonjalan picture prasoonjalan  ·  3评论

Loriot-n picture Loriot-n  ·  4评论

agostonbonomi picture agostonbonomi  ·  3评论