ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.Net 5.0 从api下载文件到本地

2021-04-12 02:04:23  阅读:141  来源: 互联网

标签:5.0 string buffer stmMemory fileName api var new Net


 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         }

 

标签:5.0,string,buffer,stmMemory,fileName,api,var,new,Net
来源: https://www.cnblogs.com/IIXS/p/14646305.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有