[开源]快速构建文件下载,支持文件加密,自定义限速
程序员文章站
2022-07-11 22:02:16
项目说明 1. 目前支持WebForm文件下载,后续支持Mvc 2. 支持下载文件加密以及下载限速 3. 项目源码: "MasterChief.DotNet.Framework.Download" 4. Nuget:Install Package MasterChief.DotNet.Framewo ......
项目说明
- 目前支持webform文件下载,后续支持mvc
- 支持下载文件加密以及下载限速
- 项目源码:masterchief.dotnet.framework.download
- nuget:install-package masterchief.dotnet.framework.download
- 欢迎pr,欢迎star;
如何使用
-
通过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>
-
在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); } }
-
在webform下载文件加密显示
protected void page_load(object sender, eventargs e) { string url = downloadfilecontext.instance.encryptfilename("typora-setup-x64.exe"); link.navigateurl = "~/filedownloadhandler.ashx?filename=" + url; }
-
运行效果
上一篇: 高嘌呤食物有哪些,尿酸高的人千万不要碰