欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[开源]快速构建文件下载,支持文件加密,自定义限速

程序员文章站 2022-07-11 22:02:16
项目说明 1. 目前支持WebForm文件下载,后续支持Mvc 2. 支持下载文件加密以及下载限速 3. 项目源码: "MasterChief.DotNet.Framework.Download" 4. Nuget:Install Package MasterChief.DotNet.Framewo ......

项目说明

  1. 目前支持webform文件下载,后续支持mvc
  2. 支持下载文件加密以及下载限速
  3. 项目源码:masterchief.dotnet.framework.download
  4. nuget:install-package masterchief.dotnet.framework.download
  5. 欢迎pr,欢迎star;

如何使用

  1. 通过masterchief.dotnet.core.config构建下载配置文件

    <?xml version="1.0" encoding="utf-16"?>
    <downloadconfig xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"
                    filenameencryptoriv="0102030405060708090a0a0c0d010208"
                    filenameencryptorkey="dotnetdownloadconfig"
                    limitdownloadspeedkb="1024"
                    downloadmaindirectory="d:\onedrive\软件\工具\">
    </downloadconfig>
  2. 在webform下新建一般处理程序,并实现downloadhandler抽象类

    /// <summary>
    ///     filedownloadhandler 的摘要说明
    /// </summary>
    public class filedownloadhandler : downloadhandler, ihttphandler
    {
        public void processrequest(httpcontext context)
        {
            var filename = context.request["filename"];
            startdownloading(context, filename);
        }
    
        public bool isreusable => false;
    
        public override void ondownloadfailed(httpcontext context, string filename, string filepath, string ex)
        {
            context.response.write(ex);
        }
    
        public override void ondownloadsucceed(httpcontext context, string filename, string filepath)
        {
            var result = $"文件[{filename}]下载成功,映射路径:{filepath}";
            context.response.write(result);
        }
    }
  3. 在webform下载文件加密显示

    protected void page_load(object sender, eventargs e)
    {
        string url = downloadfilecontext.instance.encryptfilename("typora-setup-x64.exe");
        link.navigateurl = "~/filedownloadhandler.ashx?filename=" + url;
    }
  4. 运行效果

    [开源]快速构建文件下载,支持文件加密,自定义限速