我正在尝试使用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
下载它。
答案 0 :(得分:3)
"选项" send_from_directory
与sendfile
相同:
@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