我需要检查给定的图像是否是JPEG.
if ($_FILES["fname"]["error"] > 0) {
$imgData = "hyperlink/holder.jpg";
} else {
$imgData ="hyperlink/" . $_FILES["fname"]["name"];
}
// Only accept jpg images
// pjpeg is for Internet Explorer should be jpeg
if (!($_FILES["fname"]["type"] == "image/pjpeg") ) {
print "I only accept jpg files!";
exit(0);
}
Run Code Online (Sandbox Code Playgroud)
当它转到第一个if语句中的第一个语句时,它总是给我只接受jpg文件!
我该如何解决?
Mit*_*aro 24
试试exif_imagetype图像功能.
例:
if(exif_imagetype($filepath) != IMAGETYPE_JPEG){
echo 'Not a JPEG image';
}
Run Code Online (Sandbox Code Playgroud)
我相信以下方法有效:
\n\n另请注意:
\n\n\n\n\n(exif_imagetype($ImagePathAndName) == IMAGETYPE_JPEG)
\n
仅读取前几个字节以查找图像标头,因此不足以确认图像是否已损坏。
\n\n下面我将其放在逻辑 \xe2\x80\x9cand\xe2\x80\x9d 语句中,即必须通过这两个测试才能使图像符合有效且未损坏的条件等:
\n\nif ((exif_imagetype($ImagePathAndName) == IMAGETYPE_JPEG) && (imagecreatefromjpeg( $ImagePathAndName ) !== false ))\n{\necho 'The picture is a valid jpg<br>';\n}\nRun Code Online (Sandbox Code Playgroud)\n\n注意:您需要将此行代码放在 php 代码的顶部,以避免在遇到假/损坏的图像文件时看到来自 imagecreatefromjpeg( $ImagePathAndName ) 的警告消息。
\n\nini_set(\xe2\x80\x98gd.jpeg_ignore_warning\xe2\x80\x99, 1);\nRun Code Online (Sandbox Code Playgroud)\n
PHP 有这么好的图像类型支持,我想知道你为什么限制你的应用程序。只需几行代码,您就可以处理任何输入格式并转换为 jpeg,如果需要的话...
$im = imagecreatefrompng(input_filename)
imagejpeg($im, output_filename);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25448 次 |
| 最近记录: |