无法使用具有实际名称的烧瓶下载文件

时间:2017-03-28 11:28:45

标签: python flask download sendfile

我正在尝试使用flask下载文件。我的代码如下

@app.route('/Download')
def Down():
    rpm = request.args.get('rpm')
    root = '/home/rpmbuild/RPMS/'
    return send_from_directory(root,rpm)

文件的名称在网址中传递。当我点击网址时,我可以下载文件,但文件名始终为Download。我需要它作为文件的实际名称。我也尝试了send_file(),但它也使用名称Download下载它。

1 个答案:

答案 0 :(得分:3)

"选项" send_from_directorysendfile相同:

@app.route('/Download')
def Down():
    rpm = request.args.get('rpm')
    root = '/home/rpmbuild/RPMS/'
    return send_from_directory(root,rpm,attachment_filename='foo.ext')

所以你应该用:

来调用它
'foo.ext'

当然,您可以使用要提供文件的名称替换as_attachment。您可能还想将True参数设置为os.path.basename(..)

如果您想要同名,可以使用import os @app.route('/Download') def Down(): rpm = request.args.get('rpm') root = '/home/rpmbuild/RPMS/' return send_from_directory(root,rpm,as_attachment=True, attachment_filename=os.path.basename(rpm))

#Options None
#Options + FollowSymLinks