0
0

UploadConfigApplicationBuilderExtensions.cs 1.1 KB

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