加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Asp.Net Core 中的“假造目次”实现

发布时间:2021-05-30 03:13:57 所属栏目:编程 来源:互联网
导读:这篇文章首要先容了Asp.Net Core 中的“假造目次”实现,文中通过示例代码先容的很是具体,对各人的进修可能事变具有必然的参考进修代价,必要的伴侣们下面跟着

public class MyFileProvider : PhysicalFileProvider { public MyFileProvider(string root, string alias) : base(root) { this.Alias = alias; } public MyFileProvider(string root, Microsoft.Extensions.FileProviders.Physical.ExclusionFilters filters, string alias) : base(root, filters) { this.Alias = alias; } /// <summary> /// 别名 /// </summary> public string Alias { get; set; } }

调解Startup.ConfigureServices和Startup.Configure:

public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.Configure<VirtualPathConfig>(Configuration); var config = Configuration.Get<VirtualPathConfig>().VirtualPath; config.ForEach(f => { services.AddSingleton(new MyFileProvider(f.RealPath,f.Alias)); }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } var config = Configuration.Get<VirtualPathConfig>().VirtualPath; config.ForEach(f => { app.UseStaticFiles(new StaticFileOptions() { FileProvider = new PhysicalFileProvider(f.RealPath), RequestPath =f.RequestPath }); }); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }

最后,调解挪用方法,即可。

[HttpGet] public object GetFiles([FromServices] IEnumerable<MyFileProvider> fileProviders) { var file = fileProviders.FirstOrDefault(x=>x.Alias=="first").GetFileInfo("mybook.txt"); if (file.Exists) { return ReadTxtContent(file.PhysicalPath); } return 0; }

最后

  物理文件体系的抽象通过PhysicalFileProvider这个FileProvider来实现,借助IFileProvider的特点,着实可以扩展实现轻量“云盘”的成果了,而不只仅只是实现IIS假造目次成果。搞定,今晚不加班!

到此这篇关于Asp.Net Core 中的“假造目次”实现的文章就先容到这了,更多相干Asp.Net Core 假造目次内容请搜刮剧本之家早年的文章或继承赏识下面的相干文章但愿各人往后多多支持剧本之家!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读