C# .Net 视频下载功能(本机文件)及转发下载功能(Http远程文件)

 

/*服务器本机文件下载*/
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = Encoding.Default;

var fileInfo = new FileInfo(Server.MapPath(url));
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name + "");
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(fileInfo.FullName);
Response.Flush();

Response.End();
/*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();
        }
    }
}
req?.Abort();

Response.End();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieZhengChina

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值