使用任何扩展程序显示图片文件

时间:2017-06-12 20:15:45

标签: php html

我正在寻找一种能够在不知道扩展名的情况下显示图像文件的方法。 我找到了一个找不到文件的解决方案; s扩展,现在我需要扩展名。

$result = glob('uploads/logo_'.$row['id'].'.*');
if(is_array($result))
{
  echo '<p><img src="uploads/logo_'.$row['id'].'.???" height="75"></p>';
}

2 个答案:

答案 0 :(得分:1)

好吧,当你使用glob时,你已经拥有了文件的完整路径,包括文件扩展名。

我已经在飞行中编写了一些代码(我还没有测试过):

显示所有匹配的图像:

$result = glob('uploads/logo_'.$row['id'].'.*');
if(!empty($result))
{
    foreach ($result as $file) {
        if (@is_array(getimagesize($file))) {
            $relativePath = end(explode('/', $file));
            echo '<p><img src="uploads/' . $relativePath . '" height="75"></p>';
        }
    }
}

-

显示第一张匹配的图像:

$result = glob('uploads/logo_'.$row['id'].'.*');
if(!empty($result))
{
    $file = current($result);
    if (@is_array(getimagesize($file))) {
        $relativePath = end(explode('/', $file));
        echo '<p><img src="uploads/' . $relativePath . '" height="75"></p>';
    }
}

请考虑我排除无图像文件。如果您确定根本没有非图像文件,则可以跳过@is_array(getimagesize($file))条件

答案 1 :(得分:1)

你基本上写了解决方案。 glob实际上返回匹配的文件名。

$result = glob('uploads/logo_'.$row['id'].'.*');

// glob returns an empty array if no matching files are found,
// so we need to check if the result is empty or not.
if (is_array($result) && count($result) > 0) {

    // We got at least one match, let's use the first one
    echo '<p><img src="'. $result[0] .'" height="75"></p>';
}