ASP .NET Core 2.0实现静态文件下载

我们在用的框架是继承自.NET Core 2.0,但里面有很多方法是经过了封装的,暂时并没有源码,所以只能够写成这样,如果代码中有什么错误更是希望有大神能够及时指出,我也能进步一些,毕竟我也是在最近不久才学习并使用.NET Core,还希望大家多多支持一起进步

private void DownLoad(string filepath,RomensHttpContext context,string filename)
{
    string fileName=string.IsNullOrEmpty(filename);
    //FileInfo fi=new FileInfo(filepath);
    //Encoding encoding;
    //在我们框架中UserAgent被封装称了一个HttpContext属性
    string browser=context.UserAgent.ToUpper();
    if(browser.Contains("MS") == true && browser.Contains("IE") == tru)
    {
        fileName = HttpUtility.UrlEncode(filename);
        //encoding = Encoding.Default;
    }
    else if(browser.Contains("FIREFOX") == true)
    {
        //encoding = Encoding.GetEncoding("GB2312");
    }
    else
    {
        fileName = HttpUtility.UrlEncode(filename);
        //encoding = Encoding.Default;
    }
    //context.Response.ContentType = "excel/csv";
    context.Response.Body.Close();
    context.Response.Headers["Content-Type"]="application/x-bittorrent";
    context.Response.Headers["Content-Disposition"]="attachment; filename="+fileName +".csv";
    FileStream t = new FileStream(filepath,FileMode.Open);
    byte[] bytes = new byte[(int)t.Length];
    context.Response.Headers.ContentLength = t.Length;
    t.Read(bytes,0,(int)t.Length);
    context.Response.Body.Write(bytes,0,bytes.Length);
    context.Response.Body.Flush();
    t.Close();
}

这便是HttpContext中关于Body与Headers的运用了,还希望大家能够多多交流,不要吐槽,谢谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值