参考:http://q.cnblogs.com/q/17954/
项目中需要准确记录文件的下载次数,和帖子的要求差不多。
参考了帖子中推荐的链接,问题得到了有效控制。
大概方法:逐字节(大小可以自己控制)向客户端输出流,如果输入的大小和文件大小一致,则表明文件已下载完毕,此时开始计算次数。
但,也有例外。据测试人员描述,使用的是IE浏览器,没有使用任何下载工具。同样一个文件,大小几K而已,有时候下载一次却统计了两次。
不知何故!
从后台数据看,确实那一刻记录了两次。因为是测试环节,人员不多。
这个现象无法重新,但却会发生。
无奈,将流全部输出,往数据库写入数据时,增加了一个判断,认为同一个人不可能在1秒内,重复下载同一个文件。所以,在下载的时候增加了下载时间记录。