zoukankan      html  css  js  c++  java
  • netcore 从api下载文件并直接返回

    [HttpGet]
            public IActionResult HttpReturnFile()
            {
                string url = "http://localhost:99/api/HttpFile/GetFile";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Method = "GET";
                using (WebResponse webRes = request.GetResponse())
                {
                    int length = (int)webRes.ContentLength;
                    HttpWebResponse response = webRes as HttpWebResponse;
                    Stream stream = response.GetResponseStream();
                    var contentdisposition = response.Headers["Content-Disposition"];
                    var filename = Util.Midstr(contentdisposition, "filename=", ";");
                    var ext = "."+filename.Split('.')[1];
                    new FileExtensionContentTypeProvider().Mappings.TryGetValue(ext, out var contenttype);
                    //读取到内存
                    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);
                    }
                    stmMemory.Close();
                    return File(buffer, contenttype ?? "application/octet-stream",filename);
                }
            }

     url下载文件地址

  • 相关阅读:
    微信支付
    设计模式
    微信,根据经纬度获取当前城市
    移动端下拉刷新
    angular-seed — AngularJS种子项目
    Send Email
    angularjs 控制器
    ajax 图片上传
    Jpeg-Baseline和Progressive JPEG的区别
    QT启动一个工程
  • 原文地址:https://www.cnblogs.com/huanyun/p/11350840.html
Copyright © 2011-2022 走看看