Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果从.png重命名为.jpg,请检查图像类型_Php_Image - Fatal编程技术网

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