基本信息
源码名称:WCF大文件下载 例子源码
源码大小:0.21M
文件格式:.rar
开发语言:C#
更新时间:2014-11-05
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
WCF下载文档

 


public Stream DownloadFileStream(string serverfile, string path, long offset = 0, long count = 0)
        {
            CusFileInfo file = null;
            var enumerator = files.Where((t) => t.MapPath == path "/" serverfile).GetEnumerator();
            if (enumerator.MoveNext())
            {
                file = enumerator.Current;
            }
            else
            {
                throw new FaultException("非法请求。");
            }
            if (offset >= file.FileLength)
            {
                throw new FaultException("请求的断点超过了文件最大长度。");
            }
            if (count == 0)
            {
                count = file.FileLength - offset;
            }
            if (File.Exists(file.filepath))
            {
                var outgoingResponse = WebOperationContext.Current.OutgoingResponse;
                outgoingResponse.ContentType = "application/force-download";

                Console.WriteLine("开始下载:" serverfile "(" offset "--" count ")");
                CusStreamReader fs = new CusStreamReader(new FileStream(file.filepath, FileMode.Open, FileAccess.Read, FileShare.Read), offset, count);
                fs.Reading = (t) =>
                {
                    //限速代码,实际使用时可以去掉,或者精确控制
                    Thread.Sleep(300);
                    Console.WriteLine(t);
                };
                return fs;
            }
            else
            {
                throw new FaultException("没找到文件:" serverfile);
            }

        }