UploadConfigApplicationBuilderExtensions.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using Admin.Core.Common.Configs;
  2. using Microsoft.AspNetCore.Builder;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.Extensions.FileProviders;
  5. using Microsoft.Extensions.Options;
  6. using System.IO;
  7. namespace Admin.Core.Extensions
  8. {
  9. public static class UploadConfigApplicationBuilderExtensions
  10. {
  11. private static void UseFileUploadConfig(IApplicationBuilder app, FileUploadConfig config)
  12. {
  13. if (!Directory.Exists(config.UploadPath))
  14. {
  15. Directory.CreateDirectory(config.UploadPath);
  16. }
  17. app.UseStaticFiles(new StaticFileOptions()
  18. {
  19. RequestPath = config.RequestPath,
  20. FileProvider = new PhysicalFileProvider(config.UploadPath)
  21. });
  22. }
  23. public static IApplicationBuilder UseUploadConfig(this IApplicationBuilder app)
  24. {
  25. var uploadConfig = app.ApplicationServices.GetRequiredService<IOptions<UploadConfig>>();
  26. UseFileUploadConfig(app, uploadConfig.Value.Avatar);
  27. UseFileUploadConfig(app, uploadConfig.Value.Document);
  28. return app;
  29. }
  30. }
  31. }