Skip to content

send blob to python flask and then save it

So I’m trying to make a website that record your voice, the problem is that when I send to a flask server the blob file or the blob url, my flask python code says that is no content while it is, how can I send the blob, so the server can save it as a file.

    mediaRecorder.addEventListener("stop", () => {
      const audioBlob = new Blob(audioChunks, { type: "audio/wav" })
      const audioUrl = URL.createObjectURL(audioBlob);
      const audio = new Audio(audioUrl);;

      var data = new FormData()
      data.append('file', audioUrl)

      fetch('', {
          method: 'POST',
          body: data

      }).then(response => response.json()
      ).then(json => {

and my python flask code:

@app.route("/receive", methods=['post'])
def form():
    files = request.files
    file = files.get('file')

    with open(os.path.abspath(f'backend/audios/{file}'), 'wb') as f:

    response = jsonify("File received and saved!")
    response.headers.add('Access-Control-Allow-Origin', '*')

    return response

is there a way to do it? send record blob file, download it into python?


The problem is in this line:

data.append('file', audioUrl)

you don’t use FormData.append the right way. it should be:

data.append('file', audioBlob , 'file')

See documentation: