referer: http://stackoverflow.com/questions/2086374/what-is-the-difference-between-image-png-and-image-x-png
前缀 x- 是非标准的 MIME 类型 (例如:未在 IANA注册). 所以可以认为 image/x-png 是 PNG 类型未被标准化之前使用的
6.3. New Content-Transfer-Encodings
Implementors may, if necessary, define private Content-Transfer-Encoding values, but must use an x-token, which is a name prefixed by “X-”, to indicate its non-standard status, e. g., “Content-Transfer-Encoding: x-my-new-encoding”. Additional standardized Content-Transfer-Encoding values must be specified by a standards-track RFC. The requirements such specifications must meet are given in RFC 2048. As such, all content-transfer-encoding namespace except that beginning with “X-” is explicitly reserved to the IETF for future use.
—RFC 2045 — Multipurpose Internet Mail Extensions, Section 6.3
This is also documented in the PNG specification. See FalseVinylShrub's answer.
根据W3C关于PNG的标准 http://www.w3.org/TR/PNG/#A-Media-type
"image/png" 是PNG格式网络媒体类型的 MIME 类型 [RFC-2045], [RFC-2048].同时也建议支持识别 MIME 类型 "image/x-png".
所以, 如果你打算上传或是提供一个 PNG 图片, 该用'image/png'. 另外, 处理上传后文件等其他情况应该两种 MIME 类型都支持.
由于IE前些年一直在用"image/x-png"上传,所以造成了一些开发上的困扰。