如何使用Flask打开下载对话框?

2024-09-29 21:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让用户在使用gTTS进行文本到语音转换后下载mp3文件。出现flash消息,但下载对话框未打开。在

下面是Python代码:

def mytts():
    if request.method == 'POST':
        if not request.form['text']:
            flash('Text needed to proceed', 'error')
        else:
            text_input = request.form['text']
            tts = gTTS(text=text_input, lang='en')
            f=TemporaryFile()
            tts.write_to_fp(f)
            flask.send_file(f,as_attachment=True,attachment_filename="MyTTSOutput.mp3", mimetype="audio/mpeg")
            f.close()
            flash('Successful Text-to-Speech Convert')
            return redirect(url_for('mytts'))
    return render_template('mytts.html')

HTML代码(仅限表单部分):

^{pr2}$

请帮忙。在


Tags: to代码textforminputattachmentreturnif
1条回答
网友
1楼 · 发布于 2024-09-29 21:56:54

您需要返回send_file的结果。它生成一个响应对象,Flask只能对从view函数返回的对象执行某些操作。在

with TemporaryFile() as f:
    tts.write_to_fp(f)
    return send_file(f, as_attachment=True, attachment_filename="tts.mp3")

相关问题 更多 >

    热门问题