簡體   English   中英

如果從.png重命名為.jpg,請檢查圖像類型

[英]Check image type if renamed from .png to .jpg

如果可以檢查圖像的類型是否從.png重命名為.jpg

我需要這個,因為當我使用調整大小功能時,如果上傳的圖像從.png重命名為.jpg(我的代碼只接受.jpg圖像),我的網站就會停止工作

每個.png都以這些字節開頭:

89 50 4E 47 0D 0A 1A 0A

它們是PNG簽名。 如果.jpg以這些字節開頭,那么它不是jpg。

getimagesize將包含有關圖像類型的信息:

$info = getimagesize('file.png');
if($info[2] == IMAGETYPE_JPEG){

}

您始終可以使用exif_imagetype()讀取圖像類型以檢查圖像

$image_type = exif_imagetype($filename);

例:

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'The picture is not a gif';
}
?>

是的你可以使用它

if($_FILES["imagefile"]["type"] == "image/jpeg")
{

return true;

}

else if($_FILES["imagefile"]["type"] == "image/png")

{

return false;

}

或者您應該使用此mime_content_type更可靠,因為$_FILES["imagefile"]["type"]可以從客戶端偽造...

你需要知道的不是文件的歷史,而是它的真實格式。 您可以通過檢查文件的內容來做到這一點:JPG文件應以FF D8字節開頭,以FF D9結束。 PNG文件以不同的簽名開頭:\\ 211 PNG \\ r \\ n \\ 032 \\ n(十六進制:89 50 4E 47 0D 0A 1A 0A)。

有關更多信息,請訪問此網站: http//en.wikipedia.org/wiki/Magic_number_%28programming%29

嘗試使用file命令。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM