当前位置: 首页 > 知识库问答 >
问题:

前端 - 为什么文件扩展名为 PNG,但服务器返回的 Content-Type 是 video/mp4?

濮献
2023-09-01

image.png

阿里云oss就这一个资源有问题,其他都是正常。OSS客户端查看该文件的http头显示Content_Type:video/mp4

image.png

共有3个答案

柏夕
2023-09-01

猜测这个问题应该出现上传的时候。

首先:本身这个Content-type是专用于应用于http协议的。所以它并不是文件的一部分,文件内容中也没有存储这个Content-type的相关信息。所以这个Content-type服务器具体应该存什么,服务器可以根据两点来获取:1. 是根据扩展名。2. 是根据文件的实际内容。

显然这个服务器并不是根据扩展名来获取的,而是根据文件的实际内容。

所以当前的问题可能是:用户上传前把.mp4的视频文件改成了.png,由于客户端在进行文件校验时,仅仅校验了扩展名,所以上传成功。但服务端存这个文件的时候,却是根据文件的具体内容获取了该文件的实际的Content-type应该是个视频,所以文件服务最终存的是video/mp4

png文件头:

image.png

而至于是否为mp4文件,这个原则上也应该可以根据mp4的文件规定来判断的,简单找了一下发现这个mp4的规范比较复杂,还涉及到了多种编码格式。但可以确认的是,根据其文件实际的二进制内容,必然可以判断其是否为mp4文件。

章城
2023-09-01

这两者在OSS上没什么关系。扩展名是上传文件的时候根据文件名来的。Content-Type在OSS上传的时候可以自己设置,如果没有手动指定的话,OSS会自己判断Content-Type,有时候也会判断错误。

如果只是偶尔上传后的Content-Type有问题,那可以在上传的时候自己设置,这样就不会错误了。

https://help.aliyun.com/zh/oss/user-guide/configure-the-conte...

龚远
2023-09-01

不如先问问,扩展名跟 Content-Type 跟有什么必然联系吗?


看题主用的是 OSS,这玩意儿是可以随便改的:

image.png

 类似资料:
  • 环境:nginx1.26.1 请求 CSS 文件,Content-Type 为 text/html 引用 css 的 html 代码为: nginx.conf 配置中相关部分: mime.types 与 nginx.conf 文件均存在于/etc/nginx下,nginx 已重载配置,错误记录与访问记录均无有用信息 尝试本站同类问题解决方案,无效 尝试清除浏览器记录,无效 希望加载 css 文件时

  • 问题内容: 问题是我需要先移动文件,然后其余逻辑才能工作,因此当方法返回false时,我将停止执行。 但是,当我在Windows资源管理器中检查文件时,它具有一个新名称,并且已移动。 只是好奇为什么会这样。 这是一些我刚刚尝试重新创建问题的示例代码。这几乎是同一件事,并且工作正常。 编辑:解决了。很抱歉浪费大家的时间这么愚蠢的事情。但是,我真的不认为如果没有发布此帖子,我不会对此进行追踪。 解决的

  • 我只有配置和Spring Security性 登录实现UserDetailsService loginUser用于会话信息 谢谢你阅读。

  • 我有一个分享按钮,它将分享一个图片从文字的绘制。 多谢了。

  • 问题内容: 我尝试在两种情况下执行T-SQL查询(我使用Win7,python 3.2,MS SQL Server Express 2008,适用于python 3.2的pyodbc): -情况1: 使用MS SQL Server Management Studio,我尝试执行查询: 返回成功结果 情况2: 但是运行代码后,我收到错误消息 如果我没有运行代码 我没有收到任何错误。但为什么? 问题答

  • 问题内容: 我正在使用OWASP ZAP在我的本地主机上进行一些渗透测试,并且不断报告此消息: Anti-MIME-Sniffing标头X-Content-Type-Options未设置为’nosniff’ 此检查特定于Internet Explorer 8和Google Chrome。如果Content- Type标头未知,请确保每个页面都设置了Content-Type标头和X-CONTENT-