Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python Tornado文件下载_Python 3.x_Tornado - Fatal编程技术网

Python 3.x Python Tornado文件下载

Python 3.x Python Tornado文件下载,python-3.x,tornado,Python 3.x,Tornado,我在不同的目录中有多个文件,我需要让用户从网页访问这些文件。他们可以在浏览器中查看所有文本文件,但会下载所有*.zip文件。我在Python和Tornado中下载文件时遇到了困难 if directory.endswith('.zip'): print('Currently downloading:', url) self.set_header('Content-Type', 'application/octet-stream') self.set_header("Con

我在不同的目录中有多个文件,我需要让用户从网页访问这些文件。他们可以在浏览器中查看所有文本文件,但会下载所有*.zip文件。我在Python和Tornado中下载文件时遇到了困难

if directory.endswith('.zip'):
    print('Currently downloading:', url)
    self.set_header('Content-Type', 'application/octet-stream')
    self.set_header("Content-Description", "File Transfer")
    self.set_header('Content-Disposition', 'attachment; filename {}'.format(directory))

    with open(url, 'r') as f:
        try:
            while True:
                data = f.read(4096)
                if not data:
                    break
                self.write(data)
            self.finish()
        except Exception as exc:
            self.write(json_encode({'data': exc}))
我在网上看了很多帖子,他们建议我像现在这样做,但我没有得到正确的结果


请告知

我找到了它不起作用的原因,我是用Ajax JQuery发送请求的,它得到了响应,不知道该怎么办,所以我只是提交了表单并正确下载了文件。

我找到了它不起作用的原因,我是用Ajax JQuery发送请求的,收到了回复,不知道该怎么办,所以我只是提交了表格,并正确下载了文件。

FYI。。需要下载的文件不在静态文件夹中,它们都在根目录中。您的“结果”是什么?您是否有特定的错误消息?如果您的文件不在静态文件夹中,那么您必须使每个文件本身都是静态的,以使其可访问。使用Tornado的主要原因是它的异步性质,在这种情况下,没有代码异步。此外,你阻止龙卷风,直到不给文件。查看源代码实现StaticFileHandler,它将非常详细地理解为什么编写了错误的代码并阻塞了主事件循环。仅供参考。。需要下载的文件不在静态文件夹中,它们都在根目录中。您的“结果”是什么?您是否有特定的错误消息?如果您的文件不在静态文件夹中,那么您必须使每个文件本身都是静态的,以使其可访问。使用Tornado的主要原因是它的异步性质,在这种情况下,没有代码异步。此外,你阻止龙卷风,直到不给文件。查看源代码实现StaticFileHandler,它将非常详细地理解为什么编写了错误的代码并阻塞了主事件循环。