在下载带有瓶子static_file的文件时保留文件名

时间:2018-08-23 07:32:00

标签: python python-3.x bottle

我要实现的是从带有static_file的路径下载文件(压缩日志文件夹)并保留原始文件名。这是我的代码:

@app.route('/logs')
def download_logs():
    filename = 'logs_' + time.strftime("%Y%m%d-%H%M%S")
    print(filename)
    shutil.make_archive(filename, 'zip', 'logs/')
    return static_file(filename + '.zip', './')

因此,如您所见,我想压缩日志文件夹以按日期和时间命名以存档并下载文件。下载的文件应使用与我在后端压缩的文件名相同的名称下载。当前文件下载为logs.zip,因此它获取路径的名称。

1 个答案:

答案 0 :(得分:1)

使用download参数。这将迫使浏览器显示下载对话框-在您的情况下,这是自动发生的,因为浏览器无法打开zip文件。但是,如果您尝试“下载”,例如这样的HTML页面,它将直接显示而不是下载。

更重要的是,这使您可以指定浏览器用于保存下载文件的文件名。就您而言,使用static_file(filename + ".zip". "./", download=True)(使用原始文件名)就足够了。或者,您可以使用download="my.name.goes.here"提供您自己的名称。看看documentation中的“强制下载”。