如何在javascript中显示目录的所有图像?

时间:2012-06-08 05:15:45

标签: php javascript jquery directory-traversal

我希望借助javascript动态显示目录中的所有图像。 我怎么能这样做?

4 个答案:

答案 0 :(得分:4)

我不相信这是可能的,但如果您向ASP.NET或PHP(或类似)页面发出AJAX请求,他们可以列出文件夹中的文件并将其返回给Javascript显示。

跨域政策显然适用。

如果您使用的是PHP,则应在目录上使用递归来获取完整的文件结构。 PHP有Scan Directory Function你可以使用。

基本代码示例:

function listdir($folder) {
    if (!is_dir($folder)) {
        return array(); //empty if not a folder
    }
    $return = scandir($folder);
    $subfolders = array();
    array_shift($return); //first two values are always .. & .
    array_shift($return);
    foreach ($return as $key => $value) {
        if (is_dir($value)) {
            unset($return[$key]);
            $subfolders[$value] = listdir($value); //recursively analyse the subdirectory
        }
    }
    return array_merge(array_values($return), $subfolders);

}

注意:这尚未经过测试,请告诉我它是否无效。

答案 1 :(得分:1)

除非目录具有索引或您事先知道文件名,否则无法使用纯javascript执行此操作。使用php的另一种选择如下:

  • 向php文件发送ajax请求,数据为目录名

  • 然后,PHP文件使用opendirreaddirscandir等命令访问目录内容。有关使用php readdir / scandir命令或SO question

  • 读取目录的详细信息,请参阅此this linkthis(by glob)
  • PHP文件将文件名(此处为图像名称)作为json对象返回。

  • 在客户端,ajax响应作为json对象出现。

  • 完成!您拥有该文件夹中的所有图像。

答案 2 :(得分:1)

基本的php示例

<?php

foreach(glob("/path/to/images/{*.gif,*.jpg,*.png,*.jpeg,*.bmp}", GLOB_BRACE) as $image){
    echo '<img src="'.$image.'">;
} 

?>

答案 3 :(得分:1)

您忘记了echo标记末尾的'

<?php
    foreach(glob("/path/to/images/{*.gif,*.jpg,*.png,*.jpeg,*.bmp}", GLOB_BRACE) as $image){
        echo '<img src="'.$image.'">';
    } 
?>