CTT/Tools/FileServer/Startup.cs

65 lines
2.2 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
using System;
using System.IO;
2023-09-07 00:06:37 +08:00
using System.Threading.Tasks;
2021-04-08 20:09:59 +08:00
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.StaticFiles;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
namespace ETFileServer
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
2023-09-07 00:06:37 +08:00
//services.AddDirectoryBrowser(); //开启目录浏览
services.AddControllers();
2021-04-08 20:09:59 +08:00
}
2023-09-07 00:06:37 +08:00
2021-04-08 20:09:59 +08:00
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment()) app.UseDeveloperExceptionPage();
2023-09-07 00:06:37 +08:00
2021-04-11 19:50:39 +08:00
IConfigurationRoot config = new ConfigurationBuilder()
2023-09-07 00:06:37 +08:00
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true)
.Build();
2021-04-08 20:09:59 +08:00
string configDir = config["DirectoryPath"];
2023-09-07 00:06:37 +08:00
2021-04-08 20:09:59 +08:00
configDir = new DirectoryInfo(configDir).FullName;
Console.WriteLine(configDir);
2023-09-07 00:06:37 +08:00
// UseStaticFiles(app, configDir);
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.Run(context =>
{
return Task.CompletedTask;
} );
2021-04-08 20:09:59 +08:00
}
private void UseStaticFiles(IApplicationBuilder app, string filePath)
{
2021-04-11 19:50:39 +08:00
StaticFileOptions staticfile = new StaticFileOptions
2021-04-08 20:09:59 +08:00
{
2023-09-07 00:06:37 +08:00
ServeUnknownFileTypes = true,
2021-04-08 20:09:59 +08:00
FileProvider = new PhysicalFileProvider(filePath),
DefaultContentType = "application/x-msdownload"
};
// 设置MIME类型类型
2023-09-07 00:06:37 +08:00
staticfile.ContentTypeProvider = new FileExtensionContentTypeProvider { Mappings = { ["*"] = "application/x-msdownload" } };
//app.UseDirectoryBrowser(new DirectoryBrowserOptions() { FileProvider = staticfile.FileProvider });
2021-04-08 20:09:59 +08:00
app.UseStaticFiles(staticfile);
}
2023-09-07 00:06:37 +08:00
public static IConfigurationRoot config { get; set; }
2021-04-08 20:09:59 +08:00
}
}