通过HTML表单提交的目录名称中的图像列表

时间:2012-03-31 01:02:48

标签: php jquery directory

我搜索了SO以寻找我想要的这个功能的答案,但我需要的是有些独特的吗?

我有一个输入元素,我输入子文件夹的名称,点击提交,并通过PHP或其他方式生成该指定文件夹中的图像名称列表。这是本地的,没什么特别的。

<form action="Make_List.php" method="post">
<input type=text name="location"/>
<input type=submit/>
</form>

<div id="List_Generated"> //desired output.
<span>A.jpg</span>
<span>B.jpg</span>
<span>C.jpg</span>
<span>D.png</span>
</div>

我不知道在Make_List.php中放什么,或者它甚至可以在本地工作。我确实在网上找到了这个:

//path to directory to scan
$directory = "../images/team/harry/" ( + sub-folder name );

//get all image files with a .jpg extension.
$images = glob($directory . "*.jpg");

//print each file name
foreach($images as $image)
{
echo $image;
}

但Firefox不知道该怎么做,它要求我打开或保存.php文件。关于SO(本地部分)的一些类似问题暗示我不需要PHP吗?

任何提示或指示都会有所帮助。

4 个答案:

答案 0 :(得分:2)

PHP需要处理服务器环境。您可以在自己的计算机上本地运行服务器。谷歌安装apache + php。如果你有支持PHP语言的托管,你可以在那里测试你的代码。

您的网络浏览器无法运行PHP代码。解释器运行脚本,它们是将PHP解释器插入http服务器即apache的模块。然后Apache将运行代码并返回结果,如果它被指示通过其配置处理特定模块的.php。

答案 1 :(得分:0)

使用

//path to directory to scan 
$directory = "full/path/to/images/team/harry/" . $_POST['location'];

foreach (glob($directory."*.jpg") as $filename) {
    echo $filename;
}

答案 2 :(得分:0)

以下是您使用的更好示例,无需键入子目录:

<?php 
//Get subfolder list
$folders = glob('../images/team/harry/*',GLOB_ONLYDIR);
?>

<form action="" method="post">
<select name="location" onchange="javascript:this.form.submit()">
<option>-Choose Subdir-</option>
<?php
foreach($folders as $folder){
    echo '<option value="'.basename($folder).'">'.basename($folder).'</option>'.PHP_EOL;
}
?>
</select>
</form>

<?php
//List of files once post was submitted
if(isset($_POST['location'])){
    echo '<div id="List_Generated">';
    $files = glob('../images/team/harry/'.basename($_POST['location']).'/*.jpg');
    foreach($files as $file){
        echo '<span>'.basename($file).'</span>'.PHP_EOL;
    }
    echo '</div>';
}
?>

答案 3 :(得分:0)

是的,这种事情可以做,但有以下限制:

  • 必须使用HTML5(doctype和markup)。
  • 仅限Google Chrome(暂时)
  • 仅限特定于应用程序的“沙盒”区域,而不是您的常规文件系统。

实际上,您仅限于您的计算机或每个计算机环境受到控制的Intranet中的计算机;不是互联网。

我不是专家,而是here's a good introduction。您至少需要阅读简介和标题为“阅读目录内容”的部分。