How to display all images of a directory in javascript?
我想在javascript的帮助下动态显示目录中的所有图像。我该怎么做?
我不认为这是可能的,但是如果您向ASP.NET或PHP(或类似的)页面发出Ajax请求,他们可以列出文件夹中的文件,并将其返回给javascript显示。
跨域策略显然适用。
如果您使用的是PHP,那么应该使用递归目录来获取完整的文件结构。PHP有一个可以使用的扫描目录函数。
基本代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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); } |
注意:这个还没有测试过,如果不工作请告诉我。
你忘了echo标签末尾的
1 2 3 4 5 | <?php foreach(glob("/path/to/images/{*.gif,*.jpg,*.png,*.jpeg,*.bmp}", GLOB_BRACE) as $image){ echo '<img src="'.$image.'">'; } ?> |
基本PHP示例
1 2 3 4 5 6 7 | <?php foreach(glob("/path/to/images/{*.gif,*.jpg,*.png,*.jpeg,*.bmp}", GLOB_BRACE) as $image){ echo '<img src="'.$image.'">; } ?> |
除非目录有索引或者您事先知道文件名,否则使用纯javascript是不可能的。使用PHP的另一种选择是:
向以数据作为目录名的PHP文件发送Ajax请求
然后,php文件使用
opendir 、readdir 、scandir 等命令访问目录内容。有关通过php readdir/scandir命令或此(按glob)读取目录的详细信息,请参阅此so问题或此链接。php文件以JSON对象的形式返回文件名(这里是图像名)。
在客户端,Ajax响应作为JSON对象出现。
完成!你在那个文件夹里有所有的图片。