【发布时间】:2019-03-10 12:40:15
【问题描述】:
我一直在关注this video,以了解如何使用Multer 上传文件。
然后我在我的一个Node.js 应用程序中实现了图像上传功能。
现在我想使用Multer 上传包含音频数据的 blob 的内容。要走的路是什么?我已经尝试了一些我学到的东西,但是我已经遇到了一些问题:
- 我现在处理的是音频数据而不是图形数据。
- 我没有字段名称可以作为 multer({ storage: storage }).single(...); 函数调用的参数。
我希望有经验的人(使用Multer)对此提供一些指导。
作为参考,这是我点击上传按钮时的代码:
uploadVceRcd.onclick = e => {
var reader = new FileReader();
reader.onload = function(event) {
var fd = {};
fd["fname"] = "VoiceRecord_"+Date.now()+".opus";
fd["data"] = event.target.result;
$.ajax({
type: 'POST',
url: 'VoiceUpLoad',
id: document.getElementById('sentID').innerText,
data: fd,
dataType: 'text'
}).done(function(data) {
console.log('uploadAudio - Done !');
console.log(data);
});
};
reader.readAsDataURL(blob);
}
这是我在 index.js 中处理匹配 VoiceUpLoad 路由的代码:
app.post('/VoiceUpLoad', function (req, res) {
upload(req, res, function (err) {
if (err) {
if (err instanceof multer.MulterError) {
// A Multer error occurred when uploading.
console.log('A Multer error occurred when uploading. !!!');
} else {
// An unknown error occurred when uploading.
console.log('A unknown error occurred when uploading. !!!');
console.log(err);
}
} else {
// Everything looks fine.
console.log('All seems OOKK !!!');
console.log(req.file);
if (req.file == undefined) {
console.log('req.file == undefined!!!');
} else {
console.log('SHOULD BE OOKK !!!');
.......
}
}
});
});
当我运行此代码时,我会在日志中看到以下内容:
... app[web.1]: All seems OOKK !!!
... app[web.1]: undefined
... app[web.1]: req.file == undefined!!!
【问题讨论】:
-
你知道这个音频的编解码器吗?
-
是OPUS,希望这是你想知道的答案。
-
这是实时音频流还是您从文件阅读器或任何其他流阅读器获得的内容?
-
这是我从本地麦克风那里得到的,录音结束了。
-
您是否尝试过该解决方案,是否有效?
标签: node.js blob html5-audio multer