如何允许用户使用 Flask 下载 MIDI 文件而不下载 0 字节?
How do I allow users to download a MIDI file with Flask without getting a 0 byte download?
我正在编写一个使用 MIDIUtil 库创建 MIDI 文件的应用程序。当用户提交 HTML 表单时,会使用 MIDIUtil 创建一个 MIDI 文件对象。我如何允许用户将其下载为 .mid 文件?我试过下面的代码,但我最终下载了一个 0 字节的文件。
return Response(myMIDIFile, mimetype='audio/midi')
可能只想尝试使用 send_file
from flask import send_file
return send_file("yourmidifile.mid", as_attachement=True, mimetype="audio\midi")
我使用以下代码的变体来允许我的用户下载他们生成的图像。下面的代码应该适合你。请注意,您很可能需要指定正在下载的文件的完整服务器路径。
from flask import send_file
download_filename = FULL_PATH_TO_YOUR_MIDI_FILE
return(send_file(filename_or_fp = download_filename,mimetype="audio/midi",as_attachment=True))
我最终使用了它,而且它起作用了。
new_file = open('test.mid', 'wb')
myMIDI.writeFile(new_file)
new_file.close()
new_file = open('test.mid', 'rb')
return send_file(new_file, mimetype='audio/midi')
我正在编写一个使用 MIDIUtil 库创建 MIDI 文件的应用程序。当用户提交 HTML 表单时,会使用 MIDIUtil 创建一个 MIDI 文件对象。我如何允许用户将其下载为 .mid 文件?我试过下面的代码,但我最终下载了一个 0 字节的文件。
return Response(myMIDIFile, mimetype='audio/midi')
可能只想尝试使用 send_file
from flask import send_file
return send_file("yourmidifile.mid", as_attachement=True, mimetype="audio\midi")
我使用以下代码的变体来允许我的用户下载他们生成的图像。下面的代码应该适合你。请注意,您很可能需要指定正在下载的文件的完整服务器路径。
from flask import send_file
download_filename = FULL_PATH_TO_YOUR_MIDI_FILE
return(send_file(filename_or_fp = download_filename,mimetype="audio/midi",as_attachment=True))
我最终使用了它,而且它起作用了。
new_file = open('test.mid', 'wb')
myMIDI.writeFile(new_file)
new_file.close()
new_file = open('test.mid', 'rb')
return send_file(new_file, mimetype='audio/midi')