【问题标题】:How to POST a blob audio to Python Server using AJAX and jQuery?如何使用 AJAX 和 jQuery 将 blob 音频发布到 Python 服务器?
【发布时间】: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);
    }
});

【问题讨论】:

标签: jquery django ajax blob python-server-pages


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2019-12-22
  • 2016-12-11
  • 2018-01-21
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
相关资源
最近更新 更多