python - 使用 StaticFileHandler 在 Tornado Python 上托管文件

标签 python file static tornado

您好,我正在尝试在 Tornado 中使用 StaticFileHandler,并且在大多数情况下它都可以正常工作,但当我单击下载时它会在网页中输出文件 (.csv)。我可以保存文件的唯一方法是右键单击并说将目标另存为(但这不适用于所有浏览器)。

如何强制下载文件? 我知道我需要像这样设置 StaticFileHandler 的 header :

    self.set_header('Content-Type','text-csv')
    self.set_header('Content-Disposition','attachment')

但我不知道如何设置它,因为它是默认处理程序。

感谢您的宝贵时间!

最佳答案

扩展 web.StaticFileHandler

class StaticFileHandler(web.StaticFileHandler):
    def get(self, path, include_body=True):
        if [some csv check]:
            # your code from above, or anything else custom you want to do
            self.set_header('Content-Type','text-csv')  
            self.set_header('Content-Disposition','attachment')

        super(StaticFileHandler, self).get(path, include_body)

不要忘记在处理程序中使用扩展类!

关于python - 使用 StaticFileHandler 在 Tornado Python 上托管文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17725025/

相关文章:

python - PySpark - 按时间间隔连接数据帧

python - 加快从网络下载文件的处理速度

python - 使用python音频处理的音符检测

c - 包含 scanf 和 file 的结构

java - Android:列出已安装的卷

Java 8 : Interface with static methods instead of static util class

file - 一个人应该如何从 laravel Swagger ?

python - 当pygame中两个图像碰撞时如何使变量输出 'True'

mysql 恢复另一台服务器上的文件

static - 关于 c 中静态函数指针的困惑