老师,我发现扩展名是png的图片也能用jpeg输出

老师,我发现扩展名是png的图片也能用jpeg输出

老师,我在输出图片到浏览器时,不管我生成图片资源用的是什么类型的图片,如png,gif,jpeg,只要我设置的header里面的Content-Type和image***保持一致就能输出出来,这里是什么原理呢?

如下代码:

$img = imagecreatefrompng('../image/b.png');
header('Content-Type: image/jpeg');
imagejpeg($img);


甚至我header里面设置的Content-Type和image***不一致也能输出来到浏览器,这又是为啥啊?

代码如下:

$img = imagecreatefrompng('../image/b.png');

header('Content-Type: image/jpeg');
imagegif($img);

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1.  Content-Type 实体头部用于指示资源的MIME类型 media type 。在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型。浏览器会在某些情况下进行MIME查找,并不一定遵循此标题的值;所以使用imagegif()也可以。

2.  为了防止这种行为,同学可以尝试将标题 X-Content-Type-Options 设置为 nosniff。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 慕九州8345213 提问者 #1
    就是这里浏览器只是告诉实际返回的内容类型,但是不会做约束,也就是只要是image类型,不管是什么扩展结尾都可以显示对吧
    2020-07-02 14:24:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师