Php 如果从.png重命名为.jpg,请检查图像类型
如果可以检查图像类型是否从Php 如果从.png重命名为.jpg,请检查图像类型,php,image,Php,Image,如果可以检查图像类型是否从.png重命名为.jpg 我需要这一点,因为当我使用调整大小功能时,如果上载的图像从.png重命名为.jpg,我的网站将停止工作(我使我的代码只接受.jpg图像)您可以使用 例如: <?php if (exif_imagetype('image.gif') != IMAGETYPE_GIF) { echo 'The picture is not a gif'; } ?> 每个.png都以以下字节开始: 89 50 4E 47 0D 0A 1A 0A
.png
重命名为.jpg
我需要这一点,因为当我使用调整大小功能时,如果上载的图像从.png重命名为.jpg,我的网站将停止工作(我使我的代码只接受.jpg图像)您可以使用 例如:
<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
echo 'The picture is not a gif';
}
?>
每个.png都以以下字节开始:
89 50 4E 47 0D 0A 1A 0A
它们是PNG签名。如果.jpg以这些字节开头,则它不是jpg。将包含有关图像类型的信息:
$info = getimagesize('file.png');
if($info[2] == IMAGETYPE_JPEG){
}
是的,你可以用这个
if($_FILES["imagefile"]["type"] == "image/jpeg")
{
return true;
}
else if($_FILES["imagefile"]["type"] == "image/png")
{
return false;
}
或者您应该使用此mime内容类型更可靠,因为
$\u文件[“imagefile”][“type”]
可以从客户端伪造 您需要知道的不是文件的历史记录,而是文件的真实格式。您可以通过检查文件的内容来做到这一点:JPG文件应该以字节FF D8开始,以FF D9结束。PNG文件以不同的签名开头:\211 P N G\r\N\032\N(十六进制:89 50 4E 47 0D 0A 1A 0A)
有关更多信息,请访问此网站:
尝试
文件
命令
当unknownimage
是JPG图像时:
$ file unknownimage
unknownimage: JPEG image data, baseline, precision 8, 400x400, frames 3
当unknownimage
文件是PNG图像时:
$ file unknownimage
unknownimage: PNG image data, 779 x 701, 8-bit/color RGBA, non-interlaced
您使用什么过程来调整大小。您应该看看它,看看它是如何保存大小调整后的图像并强制其成为
.jpg
谢谢,但我已经尝试过了。rename.png图像的图像类型为“image/jpeg”
$ file unknownimage
unknownimage: PNG image data, 779 x 701, 8-bit/color RGBA, non-interlaced