所以我正在尝试制作一个记录你的声音的网站,问题是当我将 blob 文件或 blob url 发送到 Flask 服务器时,我的 Flask python 代码说没有内容,而它是,我该如何发送blob,因此服务器可以将其保存为文件。
mediaRecorder.addEventListener("stop", () => {
const audioBlob = new Blob(audioChunks, { type: "audio/wav" })
const audioUrl = URL.createObjectURL(audioBlob);
const audio = new Audio(audioUrl);
audio.play();
var data = new FormData()
data.append('file', audioUrl)
fetch('http://127.0.0.1:5000/receive', {
method: 'POST',
body: data
}).then(response => response.json()
).then(json => {
console.log(json)
});
和我的 python 烧瓶代码:
@app.route("/receive", methods=['post'])
def form():
files = request.files
file = files.get('file')
print(file)
with open(os.path.abspath(f'backend/audios/{file}'), 'wb') as f:
f.write(file.content)
response = jsonify("File received and saved!")
response.headers.add('Access-Control-Allow-Origin', '*')
return response
有办法做到吗?发送记录blob文件,将其下载到python中?
问题出在这一行:
data.append('file', audioUrl)
您没有以正确的方式使用 FormData.append 。
它应该是:
data.append('file', audioBlob , 'file')
请参阅文档:https://developer.mozilla.org/en-US/docs/Web/API/FormData/append https://developer.mozilla.org/en-US/docs/Web/API/FormData/append
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)