• c# 通过地址下载流然后保存文件到本地


    1.下载文件并保存文件到本地

            private void GetFileFromNetUrl(string url)
            {
                try
                {
                    System.Net.WebRequest req = System.Net.WebRequest.Create(url);
                    req.Method = "GET";
                    //获得用户名密码的Base64编码  添加Authorization到HTTP头 不需要的账号密码的可以注释下面两行代码
                    string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "userName", "passWord")));
                    req.Headers.Add("Authorization", "Basic " + code);
                    byte[] fileBytes;
                    using (WebResponse webRes = req.GetResponse())
                    {
                        int length = (int)webRes.ContentLength;
                        HttpWebResponse response = webRes as HttpWebResponse;
                        Stream stream = response.GetResponseStream();
    
                        //读取到内存
                        MemoryStream stmMemory = new MemoryStream();
                        byte[] buffer = new byte[length];
                        int i;
                        //将字节逐个放入到Byte中
                        while ((i = stream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            stmMemory.Write(buffer, 0, i);
                        }
                        fileBytes = stmMemory.ToArray();//文件流Byte,需要文件流可直接return,不需要下面的保存代码
                        stmMemory.Close();
    
                        MemoryStream m = new MemoryStream(fileBytes);
                        string file = string.Format("F:\666666666666.pdf");//可根据文件类型自定义后缀
                        FileStream fs = new FileStream(file, FileMode.OpenOrCreate);
                        m.WriteTo(fs);
                        m.Close();
                        fs.Close();
                    }
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
            }      

    2.下载文件流,返回byte流

            private byte[] GetFileFromNetUrl(string url, string userName = "", string password = "")
            {
                try
                {
                    System.Net.WebRequest req = System.Net.WebRequest.Create(url);
                    req.Method = "GET";
                    if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
                    {
                        //获得用户名密码的Base64编码  添加Authorization到HTTP头 
                        string code = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password)));
                        req.Headers.Add("Authorization", "Basic " + code);
                    }
    
                    byte[] fileBytes;
                    using (WebResponse webRes = req.GetResponse())
                    {
                        int length = (int)webRes.ContentLength;
                        HttpWebResponse response = webRes as HttpWebResponse;
                        Stream stream = response.GetResponseStream();
    
                        //读取到内存
                        MemoryStream stmMemory = new MemoryStream();
                        byte[] buffer = new byte[length];
                        int i;
                        //将字节逐个放入到Byte中
                        while ((i = stream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            stmMemory.Write(buffer, 0, i);
                        }
                        fileBytes = stmMemory.ToArray();//文件流Byte
                        stmMemory.Close();
                    }
                    return fileBytes;
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
            }
    愿你我既可以朝九晚五,也可以浪迹天涯;愿你我既可以拈花把酒,也能围炉诗书茶。
  • 相关阅读:
    John Resig 见面会视频
    《程序员羊皮卷》书评
    用 JavaScript 对 JSON 进行模式匹配 (Part 2 实现)
    工具:开发者使用,企业埋单
    「云端 JavaScript 漫游指南」
    如何让你的网站支持 IE9 Pinned Site (Part 1 理论)
    世界顶级黑客自传:Ghost in the Wires
    MVP Summit 2010 Trip (WA)
    Apple 谈论产品 vs Microsoft 谈论技术
    IBatisNet开发使用小结 之二
  • 原文地址:https://www.cnblogs.com/xiaoheihei/p/10076973.html
Copyright © 2020-2023  润新知