日期:2014-05-17  浏览次数:20529 次

大文件上传和续传
最近在学习做视频网页,有哪位大大有类似经验,可以分享一些实现原理 ? 
我在网络找了很多相关的帖子,有很多方法和插件,不知道该从那个着手 。

文件大小大概是2GB左右 ,服务器是window iis 7.5 , 开发环境是 asp.net 2.0 c# 
是学习项目所以希望了解原理. 不要指教我用插件丫  
有什么详细的论文,请给我个链接 ^.^ 感激 

------解决方案--------------------
恩,好像还可以用 HttpRequest 对象来实现,似乎比 winsocket 更好些
------解决方案--------------------
短点续传是可以通过自定义协议来做的,比如给服务发送个标示告诉你要哪个文件的哪个位置开始的数据,这个不难吧用参数带过去,服务器接到这些参数将文件游标指向你要的文件和文件位置。
TCP做的多,HTTP参看些文章:
HTTP请求包头信息中有一个Range属性可以指定索取部分HTTP请求的文件。在.NET中则通过HttpWebRequest.AddRange方法来定义数据的范围。

当添加了Range属性的HTTP请求发送后,如果服务器支持该请求,也就是说支持部分数据提取(也是我们常说到的支持断点续传的下载,所谓断点续传的下载就是用一个Range属性来指定没有下载到的范围),那么服务器会返回Partial Content状态值。否则会返回OK状态值(200代码)。注意如果服务器支持Range但是HTTP Range请求的范围超出了文件范围,则服务器会返回RequestedRangeNotSatisfiable状态值(416代码)。