如何在将上传的文件保存到服务器之前使用getImagesize()?

时间:2019-05-06 12:19:07

标签: php file file-upload image-uploading getimagesize

鉴于getImagesize()需要一个字符串,而$_FILES['myfile']是一个数组,我试图进入临时文件夹并将文件上传到那里,以获取图像大小,但是我确实得到了错误。

这是我得到的错误:

  

警告:   getimagesize(/home/everymorning/public_html/tmp/phpNFuAMD/images.jpeg):   无法打开流:在该目录中没有这样的文件或目录   /home/everymorning/public_html/demo1.php,第48行

这是我尝试过的:

$string = $_SERVER['DOCUMENT_ROOT'].$_FILES['myfile']['tmp_name'].'/'.$_FILES['myfile']['name'];

echo getimagesize($string);

还有if I try to use the temporary path directly,我仍然收到错误消息:

如果我使用:

getimagesize($_FILES['myfile']['tmp_name']);

我得到:

  

注意:数组到字符串的转换   /home/everymorning/public_html/demo1.php,第47行

1 个答案:

答案 0 :(得分:1)

我认为getimagesize($fileName)具有以下特点-

Array ( [0] => 667 
        [1] => 184 
        [2] => 3 
        [3] => width="667" height="184" 
        [bits] => 8 
        [mime] => image/png );

您正在尝试回显Array to string conversion的数组错误。实际的echo无法打印数组,相反print_rvar_dump可以打印数组的信息。

要计算图像的大小,您可以简单地通过将高度宽度与用于表示像素的位数相乘来进行计算,并通过以下算术表达式可以以位数为单位给出图像的大小。

 $imageInfo = getimagesize($fileName);
 $size = $imageInfo[0] * $imageInfo[1] * $imageInfo['bits'];