python – 将文件返回给WSGI GET请求

我是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标题来为客户端提供文件名.

上一篇:使用AJAX在Web上调用python函数?


下一篇:flask4 + websocket