我的Express应用程序正在从浏览器接收base64编码的MP4,并将其写入文件。但是该文件不是有效的视频文件,“文件”实用程序只是将其标识为“数据”。
我的代码:
const path = `${config.uploadPath}`;
const filename = `${uniqid()}.mp4`;
let base64Data = req.body.base64.replace(/^data:([A-Za-z-+/]+);base64,/, '');
fs.writeFileSync(`${path}${filename}`, base64Data, 'base64');
答案 0 :(得分:2)
您确定请求响应是一个名为base64
的变量吗?如果是这样,请尝试以下代码:
req.body.base64 = req.body.base64.replace(/^data:(.*?);base64,/, ""); // <--- make it any type
req.body.base64 = req.body.base64.replace(/ /g, '+'); // <--- this is important
fs.writeFile(`${path}${filename}`, req.body.base64, 'base64', function(err) {
console.log(err);
});