C# 下载方法

来源:互联网 发布:php get传递参数 编辑:程序博客网 时间:2024/06/03 17:59
     /// <summary>
        /// 下载文件
        /// </summary>
        /// <param name="strFileUrl">源路径</param>
        /// <param name="strSaveTempPath">下载保存路径</param>
        /// <returns></returns>
        public long DownLoadFile(string strFileUrl, string strSaveTempPath)
        {
            long intSize = 0;
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strFileUrl);
                request.Method = "GET";
                request.Accept = "*/*";
                //request.ContentType = "*/*";
                request.KeepAlive = true;
                request.Timeout = 3000000;
                request.AllowAutoRedirect = true;
                request.Referer = "http://bbs.locojoy.com";
                request.UserAgent =
                    "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)";
                request.ReadWriteTimeout = 3000000;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream stream = response.GetResponseStream();
                CheckDirectory(strSaveTempPath, true);
                FileStream fileStream = new FileStream(strSaveTempPath, FileMode.Create, FileAccess.Write);
                long lLength = response.ContentLength;
                long i = -4092;
                decimal j = 0;
                byte[] buffer = new byte[4092];
                int iSize = 4092;
                while (true)
                {
                    i += iSize;
                    iSize = stream.Read(buffer, 0, buffer.Length);
                    j = Math.Round(Convert.ToDecimal((Convert.ToDouble(i) / Convert.ToDouble(lLength)) * 100), 4);
                    if (iSize > 0)
                    {
                        fileStream.Write(buffer, 0, iSize);
                        //System.Threading.Thread.Sleep(30);
                    }
                    else
                    {
                        break;
                    }
                }
                stream.Close();
                fileStream.Close();
                response.Close();
                intSize = lLength;
            }
            catch (Exception exception)
            {
                //AppLog.WriteLog("下载图片错误:" + strFileUrl + "---" + exception);
                intSize = 0;
            }
            return intSize;
        }
0 0
原创粉丝点击