Startup.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Microsoft.AspNetCore.Builder;
  2. using Microsoft.AspNetCore.Hosting;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.AspNetCore.StaticFiles;
  5. using Microsoft.Extensions.DependencyInjection;
  6. using Microsoft.Extensions.FileProviders;
  7. using Microsoft.Extensions.Hosting;
  8. using System;
  9. using System.IO;
  10. namespace ETFileServer
  11. {
  12. public class Startup
  13. {
  14. public void ConfigureServices(IServiceCollection services)
  15. {
  16. services.AddDirectoryBrowser(); //开启目录浏览
  17. }
  18. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  19. {
  20. if (env.IsDevelopment()) app.UseDeveloperExceptionPage();
  21. string configDir = Program.mConfig["DirectoryPath"];
  22. configDir = new DirectoryInfo(configDir).FullName;
  23. Console.WriteLine(configDir);
  24. UseStaticFiles(app, configDir);
  25. app.Run(async (context) => { await context.Response.WriteAsync("Welcome to the ET file server!"); });
  26. }
  27. private void UseStaticFiles(IApplicationBuilder app, string filePath)
  28. {
  29. var staticfile = new StaticFileOptions
  30. {
  31. ServeUnknownFileTypes = true,
  32. FileProvider = new PhysicalFileProvider(filePath),
  33. DefaultContentType = "application/x-msdownload"
  34. };
  35. // 设置MIME类型类型
  36. staticfile.ContentTypeProvider = new FileExtensionContentTypeProvider
  37. {
  38. Mappings =
  39. {
  40. ["*"] = "application/x-msdownload"
  41. }
  42. };
  43. app.UseDirectoryBrowser(new DirectoryBrowserOptions(){ FileProvider = staticfile.FileProvider });
  44. app.UseStaticFiles(staticfile);
  45. }
  46. }
  47. }