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',
});
@ deaks-ktご協力ありがとうございます!
@danielflippanceはあなたの問題を解決しましたか?
情報をありがとう。 そのソリューションは、使用されているメモリの量を2倍にしますか? IE:base64文字列と同じ情報を含むバッファができました。 その場合、PDFが非常に大きいため、サーバーのメモリ使用量が大幅に増加するため、この場合は適切ではありません。 base64にレンダリングする前にバッファを取得できるかどうかを調べます。
2倍近くになると思います。 Base64の4つごとに3バイトを取得します。これは25%の削減ですが、アレイにはいくらかのオーバーヘッドがあると思います。 本当に行き詰まっていてbase64を使用する必要がある場合は、プルリクエスト#219を調査し、 https://github.com/form-data/form-data (このライブラリがリクエストを介して使用しているもの)を確認することをお勧めし
最も参考になるコメント
上記のコードを使用して、base64文字列を添付ファイルとして追加します。つまり、添付ファイルを保存して、もう一方の端でデコードする必要があります。 私はあなたが本当にこれをしたかったかもしれないと思います: