C#中Http服务器远程文件下载到浏览器

本文详细介绍了如何使用C#在.NET4.0环境中实现Http服务器功能,通过HttpWebRequest和WebResponse处理远程文件下载,设置了Content-Disposition头以告知浏览器作为附件下载。
摘要由CSDN通过智能技术生成

C#Http服务器远程文件下载到浏览器

适用于.net4.0版本

    /// <summary>
    /// 下载文件
    /// </summary>
    /// <param name="url">文件名称(包含目录和后缀名)</param>
    private void DownLoadPic(string url)
    {
        /*Http文件下载*/
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("Content-Transfer-Encoding", "binary");
        Response.ContentType = "application/octet-stream";
        Response.ContentEncoding = Encoding.Default;

        var req = (HttpWebRequest)WebRequest.Create(url);
        var fileName = url.Substring(url.LastIndexOf('/') + 1);
        //告诉浏览器这是要下载你这里
        Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName + "");
        using (var res = req.GetResponse())
        {
            var fileLength = (int)res.ContentLength;
            Response.AddHeader("Content-Length", fileLength.ToString());
            using (var reqStream = res.GetResponseStream())
            {
                var byteArray = new byte[1024];
                int count;
                while (reqStream != null && (count = reqStream.Read(byteArray, 0, byteArray.Length)) > 0)
                {
                    Response.OutputStream.Write(byteArray, 0, count);
                    Response.Flush();
                }
            }
        }
        if (req != null)
        {
            req.Abort(); // 终止请求
        }
        Response.End();

    }
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值