【IIS】MIME类型及其在.Net Core中的应用

文章目录

    • 什么是MIME类型
    • IIS Mine类型设置
    • MIME类型相关应用
    • 参考

什么是MIME类型

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

IIS Mine类型设置

打开IIS,右击“网站”(或者具体某一个站点)—属性,选择“HTTP头”选项卡,选择“MINE类型”,点击新建,扩展名填“.aip”,MINE类型填“text/x-audiosoft-intra”,点击确定。
【IIS】MIME类型及其在.Net Core中的应用_第1张图片
【IIS】MIME类型及其在.Net Core中的应用_第2张图片

MIME类型相关应用

下载文件

前提条件:IIS Mine类型设置有对应配置

更好的选择是从config中读取扩展名/ mime类型对,并将其注入到Config方法中,这样可以从配置中管理扩展名:
appsettings.json:

"StaticFilesConfig": {
    "AllowedExtensions": {
      ".apk": "application/vnd.android.package-archive",
      ".ext": "application/ext-example-mimetype" // example
    } 
  }

Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
services.Configure<StaticFilesConfig>(Configuration.GetSection("StaticFilesConfig"));
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env
 , ILoggerFactory loggerFactory, IOptions<StaticFilesConfig> staticFilesConfig)
{
if (staticFilesConfig != null)
            {
                SetStaticFileOptions(app, staticFilesConfig);
            }
}

private void SetStaticFileOptions(IApplicationBuilder app
, IOptions<StaticFilesConfig> staticFilesOptions)
        {
            var mapping = staticFilesOptions.Value.AllowedExtensions;
            if (mapping != null && mapping.Any())
            {
                var provider = 
  new FileExtensionContentTypeProvider(staticFilesOptions.Value.AllowedExtensions);
                app.UseStaticFiles(new StaticFileOptions
                {
                    ContentTypeProvider = provider
                });
            }
        }
}

StaticFilesConfig.cs:

public class StaticFilesConfig
    {
        public IDictionary<string, string> AllowedExtensions { get; set; }
    }

参考

.netCore中使用配置实现下载apk文件
MIME-百度百科

你可能感兴趣的:(#,WEB_C#,开发,.netcore,json,MIME)