我正在使用 Delphi 7 和 Indy 9 来实现一个简单的 HTTP 服务器。当我使用 POST 方法将文件上传到服务器时,我想知道 OnCommandGet 事件之前的内容长度,以便显示进度条。事件顺序如下:
- 在 OnPostStream 我创建一个文件流并挂钩 OnWork 事件。(这里我需要content-length来设置进度条)
- POST 正文被上传,OnWork 使用传输的字节触发。
- OnCommandGet 甚至触发,我得到了正确的内容长度的 TIdHTTPRequestInfo 对象,但此时为时已晚。
我修改了 Indy 源以获取传递给 OnPostStream 处理程序的 ASender.Data 字段中的 TIdHTTPRequestInfo 的副本。一切正常,但我不想碰印地。
有更清洁的解决方案吗?谢谢