如何将 getimagesize() 与 $_FILES[''] 一起使用?

问题描述 投票:0回答:5

我正在做一个图像上传处理程序,我希望它能够检测用户上传的图像的尺寸。

所以我开始:

if (isset($_FILES['image'])) etc....

我有

list($width, $height) = getimagesize(...);

我该如何一起使用它们?

非常感谢

php file upload
5个回答
24
投票

你可以这样做

$filename = $_FILES['image']['tmp_name'];
$size = getimagesize($filename);

// or

list($width, $height) = getimagesize($filename);
// USAGE:  echo $width; echo $height;

使用条件组合,这里是一个例子

if (isset($_FILES['image'])) {
    $filename = $_FILES['image']['tmp_name'];
    list($width, $height) = getimagesize($filename);
    echo $width; 
    echo $height;    
}

2
投票

尝试多图像:

for($i=0; $i < count($filenames); $i++){  

    $image_info = getimagesize($images['tmp_name'][$i]);
    $image_width  = $image_info[0];
    $image_height = $image_info[1];
}

尝试单个图像:

$image_info = getimagesize($images['tmp_name']);
$image_width  = $image_info[0];
$image_height = $image_info[1];

至少对我有用。


1
投票

来自 php 手册非常简单的例子。

list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";

1
投票
list($w, $h) = getimagesize($_FILES['image']['tmp_name']);

来自文档:

索引0和1分别包含图像的宽度和高度。

索引 2 是 IMAGETYPE_XXX 常量之一,指示类型 图像。

索引 3 是一个文本字符串,其正确的 height="yyy" width="xxx" 可以直接在 IMG 标签中使用的字符串。

所以你可以只做 list() 而不用担心索引,它应该得到你需要的信息:)


0
投票

Getimagesize 是获取图像细节的非常昂贵的函数,它会减慢进程。我不会推荐它在循环中使用。

© www.soinside.com 2019 - 2024. All rights reserved.