从扩展生成内容类型标头

Posted

技术标签:

【中文标题】从扩展生成内容类型标头【英文标题】:Generate content type header from extension 【发布时间】:2012-11-14 18:25:37 【问题描述】:

有没有办法在 .NET 中自动生成 Content-Type 标头?

我正在开发一个系统,用户可以上传多种格式的文件,我唯一可用的元数据是文件扩展名。

我的一个表单有一个指向ashx 资源的链接,该资源将文件写入响应。我更愿意设置适当的内容类型标头,以便浏览器知道如果用户想直接打开而不是保存文件时如何处理文件。

如果没有任何可用的预制件,我将不得不开始自己编译内容类型标头映射的扩展,但我宁愿不必做不必要的工作。

这个answer 与 Java 有类似的东西,但我找不到任何适用于 .NET 的东西

【问题讨论】:

可能类似于 ***.com/a/1910179/23354 ?或者只是在某个地方有自己的自定义列表? @MarcGravell 注册表选项不可靠,因为服务器没有 Office 等,这意味着相应的 MIME 条目不在注册表中。我最终为这个列表编写了一个解析器svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types How do I determine a file's content type in .NET?的可能重复 【参考方案1】:

我最终使用this file 来填充具有 MIME 类型到扩展名映射的表,并且我的脚本在提供文件时引用它。效果很好。

【讨论】:

以上是关于从扩展生成内容类型标头的主要内容,如果未能解决你的问题,请参考以下文章

如何从响应标头中的内容类型中删除 charset=utf-8

提供的“HttpContent”实例无效。它没有带有“边界”参数的“多部分”内容类型标头

为啥我们需要设置标头请求的内容类型

本地主机已被 cors 策略请求标头字段内容类型阻止访问控制不允许

未知文件类型的 HTTP 1.0 标头内容类型

预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段内容类型