如何在上传文件保存到服务器之前使用 getImagesize()?
How to use getImagesize() for an uploaded file before it gets saved into the server?
鉴于 getImagesize() 需要一个字符串而 $_FILES['myfile']
是一个数组,我试图进入临时文件夹并将文件上传到那里以获得图像大小,但我确实出错了。
这是我得到的错误:
Warning:
getimagesize(/home/everymorning/public_html/tmp/phpNFuAMD/images.jpeg):
failed to open stream: No such file or directory in
/home/everymorning/public_html/demo1.php on line 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']);
我得到:
Notice: Array to string conversion in
/home/everymorning/public_html/demo1.php on line 47
我认为 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_r
和 var_dump
是那些可以打印数组信息的。
要计算图像的大小,您可以简单地通过将高度宽度乘以用于表示像素的位来计算,下面的算术表达式可以以位为单位给出图像的大小。
$imageInfo = getimagesize($fileName);
$size = $imageInfo[0] * $imageInfo[1] * $imageInfo['bits'];
鉴于 getImagesize() 需要一个字符串而 $_FILES['myfile']
是一个数组,我试图进入临时文件夹并将文件上传到那里以获得图像大小,但我确实出错了。
这是我得到的错误:
Warning: getimagesize(/home/everymorning/public_html/tmp/phpNFuAMD/images.jpeg): failed to open stream: No such file or directory in /home/everymorning/public_html/demo1.php on line 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']);
我得到:
Notice: Array to string conversion in /home/everymorning/public_html/demo1.php on line 47
我认为 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_r
和 var_dump
是那些可以打印数组信息的。
要计算图像的大小,您可以简单地通过将高度宽度乘以用于表示像素的位来计算,下面的算术表达式可以以位为单位给出图像的大小。
$imageInfo = getimagesize($fileName);
$size = $imageInfo[0] * $imageInfo[1] * $imageInfo['bits'];