【发布时间】:2011-02-08 03:16:52
【问题描述】:
我正在开发一个用于上传文件的 web.py 应用程序,但我的部署确实存在问题。基本上我想给用户一个“上传百分比”,但是当部署在 mod_wsgi 上时,这似乎很混乱。主要上传是这样的:
out = open(path, 'wb', 1000)
while (True):
packet = fileU.file.read(1000)
if not packet:
break
else:
out.write(packet)
sessions[code].progress += 1
out.close()
'Session' 是一个全局字典,包含跟踪会话的对象。为了获取当前进度,我每秒通过来自客户端的 GET 请求获取给定会话的当前进度。
目前的问题是这仅适用于小型上传。似乎任何超过 100kb 的东西都不会增加进度变量。如果放置在循环之外(或在 read() 被调用之前)或文件非常小,则该值肯定会增加。
wsgi 是否有可能为更大的文件打开新线程,从而使我的全局计数器仅在上传线程本地?会不会是别的东西。
【问题讨论】: