You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js如何将Base64字符串写入文件?文件大小异常问题排查

问题排查与解决:Base64视频转文件仅20字节

核心原因

生成的文件仅20字节,说明Buffer.from(mergedData, "base64")解码出的内容几乎为空,本质是输入的Base64字符串格式不符合规范。

具体排查与修复步骤

  • 移除Base64前缀:如果mergedData包含data:video/mp4;base64,这类Data URI前缀,必须先剔除,否则解码会失败:
    mergedData = mergedData.replace(/^data:video\/mp4;base64,/, '');
    
  • 清理无效字符:Base64仅允许A-Z、a-z、0-9、+、/、=这些字符,若字符串里有空格、换行或其他冗余字符,会导致解码中断,用正则清理:
    mergedData = mergedData.replace(/[^A-Za-z0-9+/=]/g, '');
    
  • 验证Base64完整性:若上述操作后仍无效,截取mergedData的前一段内容,用本地命令(如echo "截取的字符串" | base64 -d)测试解码,确认原始Base64本身是否完整有效。

修复后的完整代码示例

const fs = require('fs');

let outputFileName = "myfile.mp4";
let mergedData = "BASE64 DATA GOES HERE";

// 预处理Base64字符串
mergedData = mergedData.replace(/^data:video\/mp4;base64,/, '').replace(/[^A-Za-z0-9+/=]/g, '');

let decodeData = Buffer.from(mergedData, "base64");
fs.writeFileSync(outputFileName, decodeData);

内容的提问来源于stack exchange,提问作者X3R0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:02:36