编程语言
首页 > 编程语言> > 甚至PHP的IE都有“ bug”

甚至PHP的IE都有“ bug”

作者:互联网

这不是真正的错误,但请确保这不是您期望的.
我有以下示例代码可以上传图像:

if($type=="image/jpg" || $type=="image/jpeg" || $type=="image/pjpeg" || $type=="image/tiff" || $type=="image/gif" || $type=="image/png") {
   // make upload
else echo "Incorrect format ...."; 

问题是,如果我修改图像的扩展名,比如说.jpgq甚至是.jpg%,然后尝试上传,FF和Chrome会说该文件的类型是“ application / octet-stream”,通常情况为假.

IE则表示文件的类型为“ image / jpeg”,条件为true,文件将被上传.当然,任何试图稍后读取图像的浏览器都将无法读取图像.

这不是错误,因为在msdn.microsoft.com上它说:“如果“建议”(服务器提供)的MIME类型未知(未知且不模糊),FindMimeFromData立即返回此MIME类型”和“如果服务器提供的MIME类型是已知的或不明确的,将扫描缓冲区以尝试从实际内容中验证或获取MIME类型.”

我的问题是:

>为什么IE /服务器在上载时知道真正的MIME类型,但无法从服务器读取它呢?
>如何解决此问题(如果文件的扩展名不正确,条件必须为false)?检查扩展名格式(而不是MIME类型)是否明智?
>是否不建议使用以上任何扩展?我应该添加其他人吗?

解决方法:

忘记检查mime类型.请改用getimagesize().

标签:image,mime-types,internet-explorer,upload,php
来源: https://codeday.me/bug/20191106/2000795.html