status_code=500, get file data from 'base64:/uploads/files/20261014_video_6aceed...

2026年10月14日 10:50 9.72 秒 success

错误信息

status_code=500, get file data from 'base64:/uploads/files/20261014_video_6aceed450aed2.mp4' failed: failed to decode base64 data: illegal base64 data at input byte 23

AI 解决方案

🌐 错误翻译


原文:status_code=500, get file data from 'base64:/uploads/files/20261014_video_6aceed450aed2.mp4' failed: failed to decode base64 data: illegal base64 data at input byte 23
译文:状态码=500,从 base64:/uploads/files/20261014_video_6aceed450aed2.mp4 获取文件数据失败:无法解码 base64 数据:输入字节 23 处存在非法 base64 数据

🎯 原因分析


  • 根本原因:提供的 Base64 字符串在第 23 个字节处包含了非法字符或格式错误,导致解码器无法识别

  • 错误位置:出现在 Base64 数据的解码阶段,通常是由于数据截断、非法字符混入或编码格式错误导致的
  • 💡 解决方案


    请确保 Base64 字符串正确编码,并在解码前进行校验:
    // 修复后的代码:解码前先验证 Base64 格式
    const base64Data = '你的base64字符串';
    
    // 检查是否包含非法字符并清理
    const cleanData = base64Data.replace(/^data:[^;]*;base64,/, '');
    
    try {
      const buffer = Buffer.from(cleanData, 'base64');
      // 继续处理文件数据
    } catch (e) {
      console.error('Base64 解码失败:', e.message);
      // 重新编码或从可靠的数据源获取
    }
    

    🛡️ 预防措施


  • 🔐 编码校验:在调用解码方法前,使用正则表达式 ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ 验证 Base64 字符串格式

  • 🛠️ 使用工具:推荐使用如 Postman 或 VSCode 插件进行 Base64 编码验证,确保数据在传输过程中未被损坏