php – getimagesize()在某些图片上返回false
作者:互联网
我正在运行getimagesize()来确定上传的文件是否是有效图像以及它的MIME类型.我的webapp用户报告了他的一些图片,上传后出现“无效文件类型”错误.所以我让他给我发一些检查.
错误字符串本身没有意义,因为它只是函数失败时由我编写的通用文本(返回FALSE).我尝试增加PHP的内存限制但没有成功.此外,日志不会显示任何异常.文件有问题还是其他问题?有没有更好的方法来做这个操作?
我接受getimagesize()接受的任何文件(意思是它有宽度/高度),我只是检查它不会返回FALSE(虽然我的真实范围将是jpg | jpeg | png | gif | bmp | TIF | TIFF).服务器正在运行PHP / 5.2.6-1 lenny3.我再说一遍,这只发生在链接的图像和同一系列的其他一些图像中,所以我更倾向于认为它与Lizard的暗示有关.
在进入getimagesize($_ FILES [‘Filedata’] [‘tmp_name’])之前,$_FILES似乎是空的,因此永远不会检查该文件.我将不得不弄清楚为什么这些文件不像其他文件一样提交(对于PHP来说太大了?任何想法?).
解决方法:
在你提供更多信息之前,我无法提供太多帮助.以下代码:
$file = "http://img27.imageshack.us/img27/9159/dsc00799e.jpg";
$info = getimagesize($file);
echo "<pre>" . print_r($info,true) . "</pre>";
(其中$file等于问题中给出的图像的位置),输出:
Array
(
[0] => 2736
[1] => 3648
[2] => 2
[3] => width="2736" height="3648"
[bits] => 8
[channels] => 3
[mime] => image/jpeg
)
这似乎没关系.我在你的支票中的其他地方假设有错误?
标签:php,validation,image,upload,getimagesize 来源: https://codeday.me/bug/20190827/1742373.html