编程语言
首页 > 编程语言> > php – getimagesize()在某些图片上返回false

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