【问题标题】:Retain filename while downloading a file with bottle static_file使用瓶子静态文件下载文件时保留文件名
【发布时间】:2018-08-23 15:55:54
【问题描述】:

我想要实现的是从带有 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,因此它获取路径的名称。

【问题讨论】:

    标签: python python-3.x bottle


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-06-09
      • 2012-05-16
      • 2019-01-13
      • 2011-11-19
      • 1970-01-01
      • 2012-08-20
      • 2015-11-02
      • 2018-07-26
      相关资源
      最近更新 更多