Web2Py如何使用response.stream下载多个文件

Web2Py如何使用response.stream下载多个文件,stream,response,web2py,Stream,Response,Web2py,我在Web2Py的静态文件夹下有多个json和csv文件,我想用Web2Py控制器和response.stream从服务器下载到本地客户端。以下控制器代码起作用: def my_download(): directory = '2e6d2ba1-52d7-4927-b91d-c7568b25314d/' Cat = 'problems' path=os.path.join(request.folder,'static', directory + Cat + '.json

我在Web2Py的静态文件夹下有多个json和csv文件,我想用Web2Py控制器和
response.stream
从服务器下载到本地客户端。以下控制器代码起作用:

def my_download():
    directory = '2e6d2ba1-52d7-4927-b91d-c7568b25314d/'
    Cat = 'problems'

    path=os.path.join(request.folder,'static', directory + Cat + '.json')
    return response.stream(open(path,'rb'), attachment=True, filename=Cat)
如何循环遍历
目录
中具有
Cat='foo'
Cat='bar'
等的其他文件,并将/dl全部流式传输到客户端


在第一次
return response.stream
并成功运行之后,控制器不再具有焦点,因此它无法继续执行另一个
return response.stream
或任何其他相关语句(例如,删除文件)。

使用jquery事件并使用ajax调用和参数(文件名或anthing)调用控制器函数。它的工作原理类似于循环。

使用jquery事件并使用ajax调用和参数(文件名或anthing)调用控制器函数。它的工作原理类似于循环。

您是否考虑过使用tar文件对目录中的所有文件进行分组?请查看此链接:当然,谢谢。但我仍然存在在return response.stream之后执行代码的问题(例如在dl之后删除文件)..是否可以在启动response.stream之前创建tar文件?也就是说,在控制器内部?您是否考虑过使用tar文件对目录中的所有文件进行分组?请查看此链接:当然,谢谢。但我仍然存在在return response.stream之后执行代码的问题(例如在dl之后删除文件)..是否可以在启动response.stream之前创建tar文件?也就是说,在控制器内部?