【问题标题】:ASP MVC - Are there any constants for the default content types?ASP MVC - 默认内容类型是否有任何常量?
【发布时间】:2012-05-08 21:08:42
【问题描述】:

框架中是否有一组常量用于所有standard content types

【问题讨论】:

标签: asp.net-mvc content-type


【解决方案1】:

认为这是一个响亮的不,我写了我自己的。这就是星期天的目的。

///<summary>Used to denote the encoding necessary for files containing JavaScript source code. The alternative MIME type for this file type is text/javascript.</summary>
public const string ApplicationXJavascript = "application/x-javascript";

///<summary>24bit Linear PCM audio at 8-48kHz, 1-N channels; Defined in RFC 3190</summary>
public const string AudioL24 = "audio/L24";

///<summary>Adobe Flash files for example with the extension .swf</summary>
public const string ApplicationXShockwaveFlash = "application/x-shockwave-flash";

///<summary>Arbitrary binary data.[5] Generally speaking this type identifies files that are not associated with a specific application. Contrary to past assumptions by software packages such as Apache this is not a type that should be applied to unknown files. In such a case, a server or application should not indicate a content type, as it may be incorrect, but rather, should omit the type in order to allow the recipient to guess the type.[6]</summary>
public const string ApplicationOctetStream = "application/octet-stream";

///<summary>Atom feeds</summary>
public const string ApplicationAtomXml = "application/atom+xml";

///<summary>Cascading Style Sheets; Defined in RFC 2318</summary>
public const string TextCss = "text/css";

///<summary>commands; subtype resident in Gecko browsers like Firefox 3.5</summary>
public const string TextCmd = "text/cmd";

///<summary>Comma-separated values; Defined in RFC 4180</summary>
public const string TextCsv = "text/csv";

///<summary>deb (file format), a software package format used by the Debian project</summary>
public const string ApplicationXDeb = "application/x-deb";

///<summary>Defined in RFC 1847</summary>
public const string MultipartEncrypted = "multipart/encrypted";

///<summary>Defined in RFC 1847</summary>
public const string MultipartSigned = "multipart/signed";

///<summary>Defined in RFC 2616</summary>
public const string MessageHttp = "message/http";

///<summary>Defined in RFC 4735</summary>
public const string ModelExample = "model/example";

///<summary>device-independent document in DVI format</summary>
public const string ApplicationXDvi = "application/x-dvi";

///<summary>DTD files; Defined by RFC 3023</summary>
public const string ApplicationXmlDtd = "application/xml-dtd";

///<summary>ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to application/ecmascript but with looser processing rules) It is not accepted in IE 8 or earlier - text/javascript is accepted but it is defined as obsolete in RFC 4329. The "type" attribute of the <script> tag in HTML5 is optional and in practice omitting the media type of JavaScript programs is the most interoperable solution since all browsers have always assumed the correct default even before HTML5.</summary>
public const string ApplicationJavascript = "application/javascript";

///<summary>ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to application/javascript but with stricter processing rules)</summary>
public const string ApplicationEcmascript = "application/ecmascript";

///<summary>EDI EDIFACT data; Defined in RFC 1767</summary>
public const string ApplicationEdifact = "application/EDIFACT";

///<summary>EDI X12 data; Defined in RFC 1767</summary>
public const string ApplicationEdiX12 = "application/EDI-X12";

///<summary>Email; Defined in RFC 2045 and RFC 2046</summary>
public const string MessagePartial = "message/partial";

///<summary>Email; EML files, MIME files, MHT files, MHTML files; Defined in RFC 2045 and RFC 2046</summary>
public const string MessageRfc822 = "message/rfc822";

///<summary>Extensible Markup Language; Defined in RFC 3023</summary>
public const string TextXml = "text/xml";

///<summary>Extensible Markup Language; Defined in RFC 3023</summary>
public const string ApplicationXml = "application/xml";

///<summary>Flash video (FLV files)</summary>
public const string VideoXFlv = "video/x-flv";

///<summary>GIF image; Defined in RFC 2045 and RFC 2046</summary>
public const string ImageGif = "image/gif";

///<summary>GoogleWebToolkit data</summary>
public const string TextXGwtRpc = "text/x-gwt-rpc";

///<summary>Gzip</summary>
public const string ApplicationXGzip = "application/x-gzip";

///<summary>HTML; Defined in RFC 2854</summary>
public const string TextHtml = "text/html";

///<summary>ICO image; Registered[9]</summary>
public const string ImageVndMicrosoftIcon = "image/vnd.microsoft.icon";

///<summary>IGS files, IGES files; Defined in RFC 2077</summary>
public const string ModelIges = "model/iges";

///<summary>IMDN Instant Message Disposition Notification; Defined in RFC 5438</summary>
public const string MessageImdnXml = "message/imdn+xml";

///<summary>JavaScript Object Notation JSON; Defined in RFC 4627</summary>
public const string ApplicationJson = "application/json";

///<summary>JavaScript Object Notation (JSON) Patch; Defined in RFC 6902</summary>
public const string ApplicationJsonPatch = "application/json-patch+json";

///<summary>JavaScript - Defined in and obsoleted by RFC 4329 in order to discourage its usage in favor of application/javascript. However,text/javascript is allowed in HTML 4 and 5 and, unlike application/javascript, has cross-browser support. The "type" attribute of the <script> tag in HTML5 is optional and there is no need to use it at all since all browsers have always assumed the correct default (even in HTML 4 where it was required by the specification).</summary>
[Obsolete]
public const string TextJavascript = "text/javascript";

///<summary>JPEG JFIF image; Associated with Internet Explorer; Listed in ms775147(v=vs.85) - Progressive JPEG, initiated before global browser support for progressive JPEGs (Microsoft and Firefox).</summary>
public const string ImagePjpeg = "image/pjpeg";

///<summary>JPEG JFIF image; Defined in RFC 2045 and RFC 2046</summary>
public const string ImageJpeg = "image/jpeg";

///<summary>jQuery template data</summary>
public const string TextXJqueryTmpl = "text/x-jquery-tmpl";

///<summary>KML files (e.g. for Google Earth)</summary>
public const string ApplicationVndGoogleEarthKmlXml = "application/vnd.google-earth.kml+xml";

///<summary>LaTeX files</summary>
public const string ApplicationXLatex = "application/x-latex";

///<summary>Matroska open media format</summary>
public const string VideoXMatroska = "video/x-matroska";

///<summary>Microsoft Excel 2007 files</summary>
public const string ApplicationVndOpenxmlformatsOfficedocumentSpreadsheetmlSheet = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

///<summary>Microsoft Excel files</summary>
public const string ApplicationVndMsExcel = "application/vnd.ms-excel";

///<summary>Microsoft Powerpoint 2007 files</summary>
public const string ApplicationVndOpenxmlformatsOfficedocumentPresentationmlPresentation = "application/vnd.openxmlformats-officedocument.presentationml.presentation";

///<summary>Microsoft Powerpoint files</summary>
public const string ApplicationVndMsPowerpoint = "application/vnd.ms-powerpoint";

///<summary>Microsoft Word 2007 files</summary>
public const string ApplicationVndOpenxmlformatsOfficedocumentWordprocessingmlDocument = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";

///<summary>Microsoft Word files[15]</summary>
public const string ApplicationMsword = "application/msword";

///<summary>MIME Email; Defined in RFC 2045 and RFC 2046</summary>
public const string MultipartAlternative = "multipart/alternative";

///<summary>MIME Email; Defined in RFC 2045 and RFC 2046</summary>
public const string MultipartMixed = "multipart/mixed";

///<summary>MIME Email; Defined in RFC 2387 and used by MHTML (HTML mail)</summary>
public const string MultipartRelated = "multipart/related";

///<summary>MIME Webform; Defined in RFC 2388</summary>
public const string MultipartFormData = "multipart/form-data";

/// <summary>Body contains a URL-encoded query string as per RFC 1867</summary>
public const string ApplicationWwwFormUrlEncoded = "application/x-www-form-urlencoded";

///<summary>Mozilla XUL files</summary>
public const string ApplicationVndMozillaXulXml = "application/vnd.mozilla.xul+xml";

///<summary>MP3 or other MPEG audio; Defined in RFC 3003</summary>
public const string AudioMpeg = "audio/mpeg";

///<summary>MP4 audio</summary>
public const string AudioMp4 = "audio/mp4";

///<summary>MP4 video; Defined in RFC 4337</summary>
public const string VideoMp4 = "video/mp4";

///<summary>MPEG-1 video with multiplexed audio; Defined in RFC 2045 and RFC 2046</summary>
public const string VideoMpeg = "video/mpeg";

///<summary>MSH files, MESH files; Defined in RFC 2077, SILO files</summary>
public const string ModelMesh = "model/mesh";

///<summary>mulaw audio at 8 kHz, 1 channel; Defined in RFC 2046</summary>
public const string AudioBasic = "audio/basic";

///<summary>Ogg Theora or other video (with audio); Defined in RFC 5334</summary>
public const string VideoOgg = "video/ogg";

///<summary>Ogg Vorbis, Speex, Flac and other audio; Defined in RFC 5334</summary>
public const string AudioOgg = "audio/ogg";

///<summary>Ogg, a multimedia bitstream container format; Defined in RFC 5334</summary>
public const string ApplicationOgg = "application/ogg";

///<summary>OP</summary>
public const string ApplicationXopXml = "application/xop+xml";

///<summary>OpenDocument Graphics; Registered[14]</summary>
public const string ApplicationVndOasisOpendocumentGraphics = "application/vnd.oasis.opendocument.graphics";

///<summary>OpenDocument Presentation; Registered[13]</summary>
public const string ApplicationVndOasisOpendocumentPresentation = "application/vnd.oasis.opendocument.presentation";

///<summary>OpenDocument Spreadsheet; Registered[12]</summary>
public const string ApplicationVndOasisOpendocumentSpreadsheet = "application/vnd.oasis.opendocument.spreadsheet";

///<summary>OpenDocument Text; Registered[11]</summary>
public const string ApplicationVndOasisOpendocumentText = "application/vnd.oasis.opendocument.text";

///<summary>p12 files</summary>
public const string ApplicationXPkcs12 = "application/x-pkcs12";

///<summary>p7b and spc files</summary>
public const string ApplicationXPkcs7Certificates = "application/x-pkcs7-certificates";

///<summary>p7c files</summary>
public const string ApplicationXPkcs7Mime = "application/x-pkcs7-mime";

///<summary>p7r files</summary>
public const string ApplicationXPkcs7Certreqresp = "application/x-pkcs7-certreqresp";

///<summary>p7s files</summary>
public const string ApplicationXPkcs7Signature = "application/x-pkcs7-signature";

///<summary>Portable Document Format, PDF has been in use for document exchange on the Internet since 1993; Defined in RFC 3778</summary>
public const string ApplicationPdf = "application/pdf";

///<summary>Portable Network Graphics; Registered,[8] Defined in RFC 2083</summary>
public const string ImagePng = "image/png";

///<summary>PostScript; Defined in RFC 2046</summary>
public const string ApplicationPostscript = "application/postscript";

///<summary>QuickTime video; Registered[10]</summary>
public const string VideoQuicktime = "video/quicktime";

///<summary>RAR archive files</summary>
public const string ApplicationXRarCompressed = "application/x-rar-compressed";

///<summary>RealAudio; Documented in RealPlayer Customer Support Answer 2559</summary>
public const string AudioVndRnRealaudio = "audio/vnd.rn-realaudio";

///<summary>Resource Description Framework; Defined by RFC 3870</summary>
public const string ApplicationRdfXml = "application/rdf+xml";

///<summary>RSS feeds</summary>
public const string ApplicationRssXml = "application/rss+xml";

///<summary>SOAP; Defined by RFC 3902</summary>
public const string ApplicationSoapXml = "application/soap+xml";

///<summary>StuffIt archive files</summary>
public const string ApplicationXStuffit = "application/x-stuffit";

///<summary>SVG vector image; Defined in SVG Tiny 1.2 Specification Appendix M</summary>
public const string ImageSvgXml = "image/svg+xml";

///<summary>Tag Image File Format (only for Baseline TIFF); Defined in RFC 3302</summary>
public const string ImageTiff = "image/tiff";

///<summary>Tarball files</summary>
public const string ApplicationXTar = "application/x-tar";

///<summary>Textual data; Defined in RFC 2046 and RFC 3676</summary>
public const string TextPlain = "text/plain";

///<summary>TrueType Font No registered MIME type, but this is the most commonly used</summary>
public const string ApplicationXFontTtf = "application/x-font-ttf";

///<summary>vCard (contact information); Defined in RFC 6350</summary>
public const string TextVcard = "text/vcard";

///<summary>Vorbis encoded audio; Defined in RFC 5215</summary>
public const string AudioVorbis = "audio/vorbis";

///<summary>WAV audio; Defined in RFC 2361</summary>
public const string AudioVndWave = "audio/vnd.wave";

///<summary>Web Open Font Format; (candidate recommendation; use application/x-font-woff until standard is official)</summary>
public const string ApplicationFontWoff = "application/font-woff";

///<summary>WebM Matroska-based open media format</summary>
public const string VideoWebm = "video/webm";

///<summary>WebM open media format</summary>
public const string AudioWebm = "audio/webm";

///<summary>Windows Media Audio Redirector; Documented in Microsoft help page</summary>
public const string AudioXMsWax = "audio/x-ms-wax";

///<summary>Windows Media Audio; Documented in Microsoft KB 288102</summary>
public const string AudioXMsWma = "audio/x-ms-wma";

///<summary>Windows Media Video; Documented in Microsoft KB 288102</summary>
public const string VideoXMsWmv = "video/x-ms-wmv";

///<summary>WRL files, VRML files; Defined in RFC 2077</summary>
public const string ModelVrml = "model/vrml";

///<summary>X3D ISO standard for representing 3D computer graphics, X3D XML files</summary>
public const string ModelX3DXml = "model/x3d+xml";

///<summary>X3D ISO standard for representing 3D computer graphics, X3DB binary files</summary>
public const string ModelX3DBinary = "model/x3d+binary";

///<summary>X3D ISO standard for representing 3D computer graphics, X3DV VRML files</summary>
public const string ModelX3DVrml = "model/x3d+vrml";

///<summary>XHTML; Defined by RFC 3236</summary>
public const string ApplicationXhtmlXml = "application/xhtml+xml";

///<summary>ZIP archive files; Registered[7]</summary>
public const string ApplicationZip = "application/zip";

更新

今天偶然发现了这个很棒的资源。

https://www.iana.org/assignments/media-types/media-types.xhtml

2020 年 3 月 22 日更新 正如 Jon 和 James White 在 cmets 上提到的,您可以查看:

System.Net.Mime.MediaTypeNames

【讨论】:

  • 这个列表好像有点过时了,没有application/xml。你可以在 Wikipedia 上找到相当大的列表en.wikipedia.org/wiki/Internet_media_type
  • 常用类型不用自己动手。请参阅乔恩的回答。
  • @LukePuplett 是的,我根据乔恩的回答发表了评论并投了反对票,这似乎是正确的做法,但却被你的埋没了。然后我尝试使用 Jon 建议的方法,结果发现——正如你所说——它只涵盖了一小部分类型。所以我然后修改了我的 cmets 到那个效果。由于 SO 规则,我不能将我的反对票更改为两天内的赞成票,但我会在可能的时候这样做。虽然我可能会再次投票反对你称我为老兄:-)
  • 那次否决票的有趣之处在于,加里在真正理解问题和解决方案之前就从臀部开枪了。有很多这样的类型潜伏在 SO 周围。
  • 说实话,他回来了,他很诚实,表现出谦逊(和幽默),所以可以使用更多。
【解决方案2】:

你可以使用:

例如,System.Net.Mime.MediaTypeNames.Image.Gif 等于 "image/gif"

【讨论】:

  • 也没有application/json,正是我要找的
  • 他们正计划添加它。 PLEASE VOTE!
  • 他们添加了它,MediaTypeNames.Application.Json
  • 遗憾的是 xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) 没有条目
  • 多部分怎么样?
【解决方案3】:

这是 .NET Framework 类库(又名基类库,BCL)System.Net.Http.dll 中当前可用的完整列表:

  1. System.Net.Mime.MediaTypeNames.Application.Octet for application/octet-stream
  2. System.Net.Mime.MediaTypeNames.Application.Pdf for application/pdf
  3. System.Net.Mime.MediaTypeNames.Application.Rtf for application/rtf
  4. System.Net.Mime.MediaTypeNames.Application.Soap for 应用程序/soap+xml
  5. System.Net.Mime.MediaTypeNames.Application.Zip for 应用程序/zip
  6. System.Net.Mime.MediaTypeNames.Image.Gif for 图片/gif
  7. System.Net.Mime.MediaTypeNames.Image.Jpeg for 图片/jpeg
  8. System.Net.Mime.MediaTypeNames.Image.Tiff for 图片/tiff
  9. System.Net.Mime.MediaTypeNames.Text.Html for text/html
  10. System.Net.Mime.MediaTypeNames.Text.Plain for text/plain
  11. System.Net.Mime.MediaTypeNames.Text.RichText for 文本/富文本
  12. System.Net.Mime.MediaTypeNames.Text.Xml for text/xml

更新[21 年 8 月 12 日]

System.Net.Mime 命名空间中可用的新常量集是System.Net.Mail 库的一部分。该库是 .NET v5 的一部分。

  1. MediaTypeNames.Application.Json
  2. MediaTypeNames.Application.Octet
  3. MediaTypeNames.Application.Pdf
  4. MediaTypeNames.Application.Rtf
  5. MediaTypeNames.Application.Soap
  6. MediaTypeNames.Application.Xml
  7. MediaTypeNames.Application.Zip
  8. MediaTypeNames.Image.Gif
  9. MediaTypeNames.Image.Jpeg
  10. MediaTypeNames.Image.Tiff
  11. MediaTypeNames.Text.Html
  12. MediaTypeNames.Text.Plain
  13. MediaTypeNames.Text.RichText
  14. MediaTypeNames.Text.Xml

注意:.NET v5 不是 .NET Framework 的新版本。相反,它是 .NET Core v3.1 之后的 next major release of .NET.NET is new name of .NET CoreCore 品牌已被删除。

【讨论】:

  • “应用程序/json”还没有:(
  • @hB0 现在有一个MediaTypeNames.Application.Json。似乎只适用于 >=netstandard2.1 和 >=netcoreapp2.1
  • 多部分怎么样?
【解决方案4】:

在新的 ASP.NET Core 中MimeMapping 可以与文件名一起使用:

MimeMapping.GetMimeMapping("1.jpg")

应该返回image/jpeg

所有映射都可以在here 中找到,也可以添加您自己的(参见例如this 答案)。

【讨论】:

  • 这是一个有趣的发现。遗憾的是,它将媒体类型与文件扩展名结合在一起。例如。添加application/x-www-form-urlencoded 没有意义。
  • 您确定这仍在最新版本的 .NET Core 中吗?
  • 我目前正在使用 MimeMapping NuGet 包 (nuget.org/packages/MimeMapping),它的用途非常好!
【解决方案5】:

如果有兴趣,这里是官方的名单 http://www.iana.org/assignments/media-types/media-types.xhtml

【讨论】:

  • 很好,但是这个 C# 类映射扩展了它的 MIME-Type 和 visa 修订。
【解决方案6】:

还请在下面的链接中查看这个惊人的解决方案(“使用静态 MIME 类型映射”部分):

https://www.ryadel.com/en/get-file-content-mime-type-from-extension-asp-net-mvc-core/

你可以像这样简单地使用它:

var mineType= MimeTypeMap.GetMimeType(System.IO.Path.GetExtension(submitted));

【讨论】:

    【解决方案7】:

    https://www.nuget.org/packages/MimeTypesMap/ 是一个很棒的 NuGet 包。像这样使用它:

    MimeTypesMap.GetMimeType("filename.jpeg"); // => image/jpeg
    

    或者其他方式:

    MimeTypesMap.GetExtension("image/jpeg"); // => jpeg
    

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      相关资源
      最近更新 更多