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-k ๊ณตํํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@danielflippance๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๊น?
์ ๋ณด์ ๋ํด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ์๋ฃจ์ ์ด ์ฌ์ฉ ์ค์ธ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ ๋ฐฐ๋ก ๋๋ฆฝ๋๊น? IE: ์ด์ base64 ๋ฌธ์์ด๊ณผ ๋์ผํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ๋ฒํผ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด PDF๊ฐ ์๋นํ ํฌ๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ํฌ๊ฒ ์ฆ๊ฐํ๋ฏ๋ก ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์๋ ์ ์ ํ์ง ์์ต๋๋ค. base64๋ก ๋ ๋๋งํ๊ธฐ ์ ์ ๋ฒํผ๋ฅผ ๊ฒ์ํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
2๋ฐฐ์ ๊ฐ๊น์ง ์์๊น ์ถ์ต๋๋ค. Base64์ 4๊ฐ๋ง๋ค 3๋ฐ์ดํธ๋ฅผ ์ป์ต๋๋ค. ์ด๋ 25% ๊ฐ์์ด์ง๋ง ์ด๋ ์ด์ ์ฝ๊ฐ์ ์ค๋ฒํค๋๊ฐ ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์ ๋ง ๋งํ์ base64๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ๋์ด์ค๊ธฐ ์์ฒญ #219๋ฅผ ์กฐ์ฌํ๊ณ https://github.com/form-data/form-data (์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ฒญ์ ํตํด ์ฌ์ฉํ๋ ๊ฒ)๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค. base64 ๋์ฝ๋ฉ์ ์คํธ๋ฆฌ๋ฐํ ์ ์๋์ง ํ์ธํ๊ฑฐ๋ form.append์์ ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ฏธ ์ธ์ฝ๋ฉ๋์ด ์์์ ์ง์ ํ ์๋ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ base64 ๋ฌธ์์ด์ ์ฒจ๋ถ ํ์ผ๋ก ์ถ๊ฐํ์ต๋๋ค. ์ฆ, ์ฒจ๋ถ ํ์ผ์ ์ ์ฅํ๊ณ ๋ค๋ฅธ ์ชฝ ๋์์ ๋์ฝ๋ฉํด์ผ ํฉ๋๋ค. ๋๋ ๋น์ ์ด ์ด๊ฒ์ ์ ๋ง๋ก ์ํ์ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.