3
我是新來的在python WSGI;但有一個安裝了isapi_wsgi的Windows服務器。我也有一個處理我的GET請求的腳本,並且運行良好。問題是,有人發給我一個請求,我需要將一個zip文件返回給請求者。下面的代碼是在我的GET處理程序和它的作品,但似乎並沒有像正確的方式返回zip文件:將文件返回給WSGI GET請求
# open zip file return it
fin = open(zOutFilename, "rb")
start_response("200 OK", [('Content-Type', 'application/zip')])
return fin.read()
的事情是,你正在返回一個「流」 - 這意味着你失去文件名(瀏覽器簡單地將它命名爲GET查詢的名稱),它看起來非常慢。
有沒有更好的方式來返回一個文件下載與wsgi然後這種方法?
在此先感謝
是的 - 這是我一直在尋找。它固定我的問題:
鰭=開放(zOutFilename, 「RB」) 大小= os.path.getsize(zOutFilename) start_response( 「200 OK」,[( '內容 - 類型', '應用程序/壓縮' ),('Content-length',str(size)),('Content-Disposition','attachment; filename ='+ finalModelName +'.zip')]) #返回整個文件 if'wsgi.file_wrapper 'in environ: return environ ['wsgi.file_wrapper'](fin,1024) else: return iter(lambda:fin.read(1024),'')
– madigan 2010-09-02 00:20:57