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

什么是MIME类型

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

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。七种大类别:

  1. video
  2. image
  3. application
  4. text
  5. audio
  6. multipart
  7. message

IIS Mine类型设置

打开IIS,右击“网站”(或者具体某一个站点)—属性,选择“HTTP头”选项卡,选择“MINE类型”,点击新建,扩展名填“.aip”,MINE类型填“text/x-audiosoft-intra”,点击确定。
在这里插入图片描述
在这里插入图片描述

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-百度百科

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软泡芙

给爷鞠躬!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值