[英]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.