非常简单的问题,但似乎在网上找不到。我正在尝试制作一个程序,根据文件类型将给我扩展名。
当前回答
这里需要注意的重要一点是mime类型与文件扩展名不同。然而,有时它们具有相同的价值。
https://www.iana.org/assignments/media-types/media-types.xhtml包含一个注册Mime类型的列表,尽管没有什么阻止你创建自己的Mime类型,只要你在发送端和接收端。这就是微软参与进来的地方。
有很多混淆的地方是,操作系统有自己的方法来识别文件类型,即使用文件名的末尾,称为扩展名。在现代操作系统中,整个名称是一个长字符串,但在更原始的操作系统中,它被视为一个单独的属性。
引起混乱的操作系统是MSDOS,它限制扩展为3个字符。这种限制一直延续到今天,在SD卡等设备中,它们仍然以相同的方式存储数据。
这种限制的一个副作用是一些文件扩展名,如。gif匹配他们的Mime类型,image/gif,而其他的则是折衷的。这包括扩展名为。jpg的image/jpeg。即使在取消了限制的现代Windows中,微软也从未放过过去,因此文件扩展名仍然是缩写版本。
考虑到:
文件扩展名不是文件类型 历史上,一些操作系统有严重的文件名限制 有些操作系统会自行制定规则
简单的回答是:
从技术上讲,没有图像/jpg这样的东西,所以答案是 它与image/jpeg不同 这不会阻止一些操作系统和软件处理 好像是一样的
既然说到这里……
旧版本的ie浏览器可以自由上传Mime类型为image/pjpeg的jpeg文件,当然,这意味着其他人要做更多的工作。他们还将png文件上传为image/x-png。
其他回答
这里需要注意的重要一点是mime类型与文件扩展名不同。然而,有时它们具有相同的价值。
https://www.iana.org/assignments/media-types/media-types.xhtml包含一个注册Mime类型的列表,尽管没有什么阻止你创建自己的Mime类型,只要你在发送端和接收端。这就是微软参与进来的地方。
有很多混淆的地方是,操作系统有自己的方法来识别文件类型,即使用文件名的末尾,称为扩展名。在现代操作系统中,整个名称是一个长字符串,但在更原始的操作系统中,它被视为一个单独的属性。
引起混乱的操作系统是MSDOS,它限制扩展为3个字符。这种限制一直延续到今天,在SD卡等设备中,它们仍然以相同的方式存储数据。
这种限制的一个副作用是一些文件扩展名,如。gif匹配他们的Mime类型,image/gif,而其他的则是折衷的。这包括扩展名为。jpg的image/jpeg。即使在取消了限制的现代Windows中,微软也从未放过过去,因此文件扩展名仍然是缩写版本。
考虑到:
文件扩展名不是文件类型 历史上,一些操作系统有严重的文件名限制 有些操作系统会自行制定规则
简单的回答是:
从技术上讲,没有图像/jpg这样的东西,所以答案是 它与image/jpeg不同 这不会阻止一些操作系统和软件处理 好像是一样的
既然说到这里……
旧版本的ie浏览器可以自由上传Mime类型为image/pjpeg的jpeg文件,当然,这意味着其他人要做更多的工作。他们还将png文件上传为image/x-png。
对于那些可能有帮助的人,当我必须在应用程序上处理图像时,我使用这个列表作为定义我的内容类型的参考。
它说jpg扩展可以用Content-type: image/jpeg声明
content-type没有任何image/jpg属性。
不,image/jpg和image/jpeg不一样。
你应该使用image/jpeg。只有image/jpeg被识别为jpeg文件的实际mime类型。
见https://www.rfc-editor.org/rfc/rfc3745, https://www.w3.org/Graphics/JPEG/。
向IE提供错误的图像/jpg内容类型可能会导致问题,请参阅http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm。
推荐文章
- 将列表的Python列表写入csv文件
- 不能与文件列表一起使用forEach
- python方式检查文件是否存在?
- BAT文件执行后保持CMD打开
- 从包含文件名的路径获取不包含文件名的完整路径
- Git:从另一个分支复制目录中的所有文件
- PHP,获取没有文件扩展名的文件名
- 如何在远程系统上使用Ansible任务移动/重命名文件
- 从java.io.File获取java.nio.file.Path对象
- 用c#编写数据到CSV文件
- 安卓系统;检查文件是否存在而不创建新的文件
- 如何改变。net WebClient对象的超时时间
- 我如何可以删除在VIM所有文本从当前行文件结束?
- 如何比较二进制文件,以检查他们是否相同?
- 如何使用open with语句打开文件