我正在尝试用PHP检查图像大小,但是我遇到了一些错误。我可以保存图像并查看它,但如果我添加一个函数来检查它的大小,我会收到一个错误。
Warning: imagesx() expects parameter 1 to be resource, array given in...
Warning: imagesy() expects parameter 1 to be resource, array given in...
这是我用来检查尺寸/上传的内容
if(isset($_POST['submitImage'])){
$image = new imageProcessing;
$image->checkSize($_FILES["image"]);
}
这是HTML
?>
<h2>Upload Profile Image</h2>
<form action="editinfo.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="image" id="file" /> <br />
<input type="submit" name="submitImage" value="Submit" />
</form>
这是检查大小的功能
function checkSize($image){
if(imagesx($image) > 100 OR imagesy($image) > 100){
echo "too large";
}
}
使用getimagesize作为DrAgonmoray建议,我收到以下错误
Warning: getimagesize() expects parameter 1 to be string, array given in...
答案 0 :(得分:1)
您可以使用getimagesize()函数执行此操作。有关详细信息,请参阅php文档。
答案 1 :(得分:1)
$bannersize = getimagesize($image);
if ($bannersize[0] > 100 || $bannersize[1] > 100) {
//error
}
小心确保$ image不为空。
你可以在这里阅读getimagesize: http://php.net/manual/en/function.getimagesize.php
答案 2 :(得分:1)
$ _ FILES提供您上传的PER FILE信息的ARRAY。此数组包含PHP存储文件的临时文件的路径。这是您需要使用的临时文件名。同样,imagesx()和imagesy()不接受文件名作为参数。他们期望GD资源处理。因此,您的代码会在多个级别上被破坏。
if ($_FILES['image']['error'] !== UPLOAD_ERR_OK) {
die("File upload failed with error code {$_FILES['image']['error']}");
}
$info = getimagesize($_FILES['image']['tmp_name']);
if ($info === FALSE) {
die("Invalid file type");
}
if (($info[0] > 100) || ($info[1] > 100)) {
die("Image must be at most 100x100");
}