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

Node.js中将base64音频保存到本地文件夹后mp3无法播放如何解决

问题排查与修复方案

核心问题原因

  • 未剥离Base64的Data URI前缀:你传入的base64File开头的data:audio/mp3;base64,是Data URI协议的标识头,不属于音频本身的Base64编码内容,直接传入Buffer.from转换会生成错误的文件头,导致MP3文件无法被播放器识别。
  • 变量名拼写错误:代码中定义的文件名为filename,但后续拼接路径、打印日志时误写为filetname(多了字母t),可能导致文件存储路径不符合预期。

修复后代码

const fs = require('fs');
let base64File = 'data:audio/mp3;base64,UklGRiRAHwBXQVZFZm10IBAAAAABAAIAgLsAAAD...........';
const DIR = BASE_PATH + 'src/storage/voice/';
const filename = 'sample.mp3';
const fileurl = DIR + filename;
// 先剥离Data URI前缀,仅保留音频对应的纯Base64内容
const base64Data = base64File.replace(/^data:audio\/\w+;base64,/, '');
const fileContents = Buffer.from(base64Data, 'base64');
// 提前校验目录是否存在,不存在则自动创建,避免目录缺失导致写入异常
if (!fs.existsSync(DIR)) {
  fs.mkdirSync(DIR, { recursive: true });
}
fs.writeFile(fileurl, fileContents, (err) => {
   if (err) return console.error(err);
   console.log('file saved to ', filename);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:45:01