我是python上的WSGI的新手;但有一个安装了isapi_wsgi的Windows服务器.我还有一个脚本可以处理我的GET请求,并且运行良好.问题是,有人向我发送了请求,我需要将zip文件返回给请求者.以下代码在我的GET处理程序中,它可以工作,但似乎不是返回zipfile的正确方法:
# open zip file return it
fin = open(zOutFilename, "rb")
start_response( "200 OK", [('Content-Type', 'application/zip')])
return fin.read()
问题是,你正在返回一个’流’ – 这意味着你丢失了文件名(浏览器只是将它命名为GET查询的名称),它看起来非常慢.
有没有更好的方法返回一个文件下载wsgi然后这个方法?
提前致谢
解决方法:
直接从PEP 333采取:
if 'wsgi.file_wrapper' in environ:
return environ['wsgi.file_wrapper'](filelike, block_size)
else:
return iter(lambda: filelike.read(block_size), '')
您也可能需要Content-Disposition标题来为客户端提供文件名.