UploadConfigApplicationBuilderExtensions.cs 1.1 KB

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