下载控制开发

daview 2010-07-20 11:05:34
定义了一个WEB应用,提供下载中心的功能。要下载的文件放在文件服务器中,WEB站点通过建立虚拟目录连接到文件服务器的下载目录。

这个下载实现是很简单也性能很好的,一切OK。

问题:

1——
我要对下载进行控制,于是对站点增加了所有访问的过滤拦截

2——
定义了一个虚拟目录FILES连接到文件服务器的共享文件夹,同时也纳入到ASP.NET的管制中

3——
由于ASP.NET不能执行非本机的文件夹,直接访问FILES是会报告错误的,于是定义了一个实际上不存在的PACKAGE目录。

4——
对于所有访问PACKAGE用ASP.NET拦截(在IHTTPMODULE接口中),然后分析请求的路径,通过FILES定位到具体的下载文件,使用WRITEFILE写文件

5——
步骤4的任务算是达到了我的目的,我可以控制下载,每个下载要进行下载统计,每个下载要检测是否需要进行用户信息的登记等等。

6——
新的问题出来了:
a:WRITEFILE把我的内存消耗殆尽
b:在进行断点续传的时候解决起来有点麻烦(似乎是正确的,没发现有用户反馈错误,但感觉没解决好)

求助高手或有经历过的朋友提供下这个需求的解决方案。感谢!
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Thr21ough 2010-07-21
  • 打赏
  • 举报
回复
up~
wantalcs 2010-07-21
  • 打赏
  • 举报
回复
使用Response.TransmitFile方法,这个方法参数和Response.WriteFile方法参数一样,功能也相同。但TransmitFile不缓存文件,传输大文件时也不会耗尽内存。
daview 2010-07-21
  • 打赏
  • 举报
回复
感谢顶贴。分不够可以加哈啊^_^
chenkui2008 2010-07-20
  • 打赏
  • 举报
回复
dddddddd
huwen7565833 2010-07-20
  • 打赏
  • 举报
回复
没有做过,友情帮顶一下!!!!
平生我自如 2010-07-20
  • 打赏
  • 举报
回复
帮顶一下吧!没有做过

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧