暖宝宝官方认证铲屎官
使用nodejs编码/解码base64格式文件
发布于: 2021-03-09 更新于: 2021-03-11 分类于: nodejs 阅读次数: 

本来这么点事情,根本不值得写篇文章,无奈心中想吐槽,于是这篇没什么大用的文章就出来了
为什么想吐槽呢,因为偶尔需要使用这个功能,在bing一搜,嗨,出来的文章都是一个样,都是用一个字符串,先转成base64格式的,然后再转回正常的utf8格式
而我的需求是要把一个base64格式的txt文件,还原成初始格式,看了好一会儿也没懂,真是醉了,最后自己试了一下,改了一些参数可以了
不过回头想想,看的是CSDN上的“大神”的文章,也就释然了~

编码

1
2
3
4
5
6
7
8
// 第一种方法:先将文件转为二进制,再转为base64,这种方式不推荐,代码执行效率低
let vod = fs.readFileSync('source.mp4'); //readFileSync默认编码参数为null
let base64String = Buffer.from(vod, 'binary').toString('base64');
fs.writeFileSync('vod_base64.txt', base64String);

//第二种方式,直接以base64格式读取文件,推荐这种方式,读取过程中直接转换,代码执行效率高
let vod = fs.readFileSync('source.mp4', 'base64');
fs.writeFileSync('vod_base64.txt', Buffer.from(vod));

解码

1
2
3
//先以二进制格式读取文件base64格式内容,再以base64格式加载到Buffer中,然后再写入到目标文件,即可得到初始格式文件
let encode = fs.readFileSync('vod_base64.txt', 'binary');
fs.writeFileSync('decode.mp4', Buffer.from(encode, 'base64'));
--- 本文结束 The End ---