从目录

时间:2015-10-15 09:38:01

标签: php image

我查看了Pull all images from a specified directory and then display themPull all images from a specified directory and then display them。看起来他们在这些帖子上提供的解决方案非常简单。所以我尝试使用代码而不是图像,我得到一个图像名称的字符串。我的uploads文件夹中不只有一个图像,但它只显示一个图像的名称。

只是为了给出一些上下文,在一个文件夹中,我有index.htmlupload.php和一个名为uploads的目录,其中存储了我的所有图像。

以下是我的代码:

<body>   
    <div>
        <a class="info" id="hvr-float" id="thePeopleButton" p style="font-size:30px" href="javascript:void(0);">The People</a>
        <h1 class="infoText" style="display:none"></h1>
        <?php

        $directory = "uploads/";
        $images = glob($directory."*.jpg");

        foreach($images as $image)
        {
        echo '<img src="'.$image.'" /><br />';
        }

        ?>
    </div>
</body>

我希望代码显示图像而不仅仅是文本。这是我网站上发生的事情的图片:

enter image description here

所以,我想要实际的图像,而不是uploads/awesome-fruit.jpg。有什么建议吗?

4 个答案:

答案 0 :(得分:1)

为了让img元素显示图片,它需要来自根网址的源(或不是),因此uploads/awesome-fruit.jpg应为/uploads/awesome-fruit.jpg

对于glob我建议使用{jpg,gif,png}

$directory = "uploads/";
$images = glob($directory."*.{jpg,gif,png}", GLOB_BRACE);

info source

答案 1 :(得分:1)

几天前,我正在玩同样的事情。这里的问题是文件路径。

例如我的桌面上有一些图像(我使用的是Ubuntu)

 $directory = "/home/Desktop/";

如果我运行代码

    $images = glob($directory."*.jpeg");
    foreach($images as $image)
    {
    echo '<img src="'.$image.'" /><br />';
    }

    ?>

我无法获取图片,因为如果您在浏览器中加载相同的图片,则链接属于file:///home/Desktop/a.jpeg类型,而不仅仅是/home/Desktop/a.jpeg

尝试使用相同的模式,您将获得所需的输出。

更正后的代码

<?php


    $directory = "/home/likewise-open/PUNESEZ/anurag.verma/Desktop/";   
    $images = glob($directory."*.jpeg");
    foreach($images as $image)
    {
// look at the addition of file://
    echo '<img src="file://'.$image.'" /><br />';
    }

    ?>

答案 2 :(得分:0)

您可以使用简单的PHP脚本显示文件夹中的所有图像。假设文件夹名称“上传”并将一些图像放在此文件夹中,然后编辑并粘贴此代码并运行此脚本。这是php代码

如果您不检查类型,那么只需使用此代码从您的文件夹中获取所有图像并显示

<?php
$files = glob("uploads/*.*");
for ($i = 0; $i < count($files); $i++) {
    $image = $files[$i];
    echo basename($image) . "<br />"; // show only image name if you want to show full path then use this code // echo $image."<br />";
    echo '<img src="' . $image . '" alt="Random image" />' . "<br /><br />";

}
?>

如果你想检查只有图像类型会显示你的文件夹是否有文件,pdf类型文件然后也使用这个代码

<?php
 $files = glob("uploads/*.*");
 for ($i=0; $i<count($files); $i++)
  {
   $image = $files[$i];
   $supported_file = array(
         'gif',
         'jpg',
         'jpeg',
         'png'
     );

    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
    if (in_array($ext, $supported_file)) {
       echo $image ."<br />";
       echo '<img src="'.$image .'" alt="Random image" />'."<br /><br />";
       } else {
         continue;
        }
      }
   ?>

希望它会帮助你

答案 3 :(得分:0)

代码是索引还是上传文件?因为如果它是index.html你必须将扩展名更改为index.php

所以你可以试试这段代码,而不是你的php代码...

<?php
foreach (new DirectoryIterator("uploads/") as $file) {
    if($file->getExtension() == "jpg"){
        echo "<img src='uploads/{$file->getFilename()}'/>\n";
    }
}
?>