6

アプリケーションにフラスコを使用しています。ディスクにwavファイルを保存するかどうかに関係なく、サーバー側からクライアントにオーディオwavファイルを送信したいと思います。

これを行う方法はありますか?

4

1 に答える 1

10

StringIOを使用してメモリ内ファイルを作成できます。

from cStringIO import StringIO
from flask import make_response

from somewhere import generate_wav_file  # TODO your code here

@app.route('/path')
def view_method():

    buf = StringIO()

    # generate_wav_file should take a file as parameter and write a wav in it
    generate_wav_file(buf) 

    response = make_response(buf.getvalue())
    buf.close()
    response.headers['Content-Type'] = 'audio/wav'
    response.headers['Content-Disposition'] = 'attachment; filename=sound.wav'
    return response

ディスクにファイルがある場合:

from flask import send_file

@app.route('/path')
def view_method():
     path_to_file = "/test.wav"

     return send_file(
         path_to_file, 
         mimetype="audio/wav", 
         as_attachment=True, 
         attachment_filename="test.wav")
于 2013-06-28T13:05:09.500 に答える