我希望借助javascript动态显示目录中的所有图像。 我怎么能这样做?
答案 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文件使用opendir
,readdir
,scandir
等命令访问目录内容。有关使用php readdir / scandir命令或SO question
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.'">';
}
?>