如何使用 AJAX 和 jQuery 将 blob 音频发布到 Python 服务器?
Posted
技术标签:
【中文标题】如何使用 AJAX 和 jQuery 将 blob 音频发布到 Python 服务器?【英文标题】:How to POST a blob audio to Python Server using AJAX and jQuery? 【发布时间】:2020-11-05 12:56:20 【问题描述】:我正在开发一个音频网络应用程序,它记录用户的声音,然后以 .wav/.mp3 文件的形式发布到服务器。我有一些代码可以在我的 .js 文件中发布我的音频 blob,但我不确定它是否正确。我也不确定如何在 Python 服务器端接收 blob 音频并将其下载为 .wav 文件
这是我的 app.js 文件中代码的 sn-p
var formdata = new FormData();
formdata.append("audio", blob, "test.wav")
$.ajax(
type: 'POST',
url: "http://localhost/pyserver.py",
data: formdata,
contentType: false,
processData: false,
success: function (data)
// data is what is sent back to you from the server, handle it here.
console.log(data);
,
complete: function ()
// let's say you have a "loading" window up, this is where you close it.
,
error: function (jqXHR, textStatus, errorThrown)
// handle error.
console.log(errorThrown);
);
【问题讨论】:
Why is “Can someone help me?” not an actual question? 【参考方案1】:js文件
function sendAudio(blob)
var wavFile = new File([ blob ], "audio.wav");
var form = new FormData();
form.append("myAudio", wavFile);
$.ajax(
url: "/getAudio/",
type: "POST",
data: form,
contentType: false,
processData: false,
success: function(getData)
console.log(getData);
);
views.py
def getAudio(request):
if request.method == "POST":
if request.FILES.get("myAudio", False):
handleUploadFile(request.FILES["myAudio"])
return HttpResponse()
def handleUploadFile(f):
with open("myFolder/" + f.name, "wb+") as destination:
for chunk in f.chunks():
destination.write(chunk)
handleUploadFile 最好放在单独的“function.py”中
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于如何使用 AJAX 和 jQuery 将 blob 音频发布到 Python 服务器?的主要内容,如果未能解决你的问题,请参考以下文章
使用 jquery 图像裁剪器进行 Ajax 图像预览 [blob url]
如何通过javascript中的ajax调用传递blob值?