zoukankan      html  css  js  c++  java
  • .Net 5.0 从api下载文件到本地

     1        /// <summary>
     2         /// 从Http下载文件
     3         /// </summary>
     4         /// <param name="url">文件链接</param>
     5         /// <param name="fileName">保存文件路径名</param>
     6         /// <returns></returns>
     7         public static string HttpDownFile(string url,string fileName)
     8         {
     9            // url = "https://paper.ysbang.cn/data/img/report/user/2018/07/16/5b4c078549c55_6531.jpg";
    10             var request = (HttpWebRequest)WebRequest.Create(url);
    11             
    12             request.Method = "GET";
    13             using (var webRes = request.GetResponse())
    14             {
    15                 var length = (int)webRes.ContentLength;
    16                 var response = webRes as HttpWebResponse;
    17                 var stream = response?.GetResponseStream();
    18                 var contentDisposition = response?.Headers["Content-Disposition"];
    19                 var match = Regex.Match(contentDisposition ?? string.Empty, @"(?is)filename=""([^""]+)""s*Content-Type:([^;]+)");
    20                 fileName +="_"+ match.Groups[1].Value;
    21 
    22           
    23                 //读取到内存
    24                 var stmMemory = new MemoryStream();
    25                 var buffer = new byte[length];
    26                 int i;
    27                 //将字节逐个放入到Byte中
    28                 while (stream != null && (i = stream.Read(buffer, 0, buffer.Length)) > 0)
    29                 {
    30                     stmMemory.Write(buffer, 0, i);
    31                 }
    32                 stmMemory.ToArray();//文件流Byte
    33                 var fs = new FileStream(fileName, FileMode.OpenOrCreate);
    34                 stmMemory.WriteTo(fs);
    35                 stmMemory.Close();
    36                 fs.Close();
    37                 return fileName;
    38             }
    39         }
  • 相关阅读:
    springnodejs
    js CacheQueue
    权重练习
    架构师速成8.3-可用性之分库分表
    架构师速成8.3-可用性之分布式
    架构师速成8.3-可用性
    架构师速成8.3-架构师必须要了解的规则(转)
    架构师速成6.15-开发框架-单点登录
    架构师速成6.14-开发框架-异常处理
    架构师速成6.13-开发框架-前后结合
  • 原文地址:https://www.cnblogs.com/IIXS/p/14646305.html
Copyright © 2011-2022 走看看