0

我有一个包含大量图像和其他文件夹/目录的文件夹/目录。

我正在使用以下代码显示这些文件的预览:

<?php
      $images=array();  
        $dir_handler = opendir('test') or die("Unable to open path");  
        $i=0;    
        while($file = readdir($dir_handler))
        {            
        if(is_dir($file)) 
        continue;        
        else if($file != '.' && $file != '..' && $file != 'index.php')
        {                    
        $images[$i]=$file;
        $i++;     
        }       
        }      
        sort($images);

        for($i=0; $i<sizeof($images); $i++) 
        {              

        echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>";

        }        closedir($dir);
?>

问题是我想为每个文件(每个图像或文件夹)分配一个单独的按钮,这样通过单击每个按钮,其对应的图像(或文件夹/目录)就会从主文件夹中删除,不再显示为预览。

另一个小问题是上面的代码没有显示文件夹的预览。为什么?任何帮助将不胜感激。

4

2 回答 2

0

您总是显示图像,您需要检查 $images 数组值是图像还是文件夹。然后对显示器做一些不同的事情。

要删除文件或文件夹,请分别使用以下函数:

unlink();
rmdir();

http://www.php.net/manual/en/function.rmdir.php

http://php.net/manual/en/function.unlink.php

要在图像之前添加文件夹列表,请将代码更改为:

<?php
  $images=array();  
  $folders = array();
    $dir_handler = opendir('test') or die("Unable to open path");  
    $i=0;    
    while($file = readdir($dir_handler))
    {            
    if(is_dir($file)) {
         $folders[count($folders)] = $file;
    }   
    else if($file != '.' && $file != '..' && $file != 'index.php')
    {                    
    $images[$i]=$file;
    $i++;     
    }       
    }      
    sort($images);

    foreach($folders as $folder){

     echo "<a href='#'>$folder</a>";
    }

    for($i=0; $i<sizeof($images); $i++) 
    {              

    echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>";

    }   

 closedir($dir);
?>

然后,您所要做的就是在视图中构建文件夹的可视元素,并链接到一个函数,该函数将在需要时执行 unlink() 和 rmdir()。

于 2013-02-05T16:50:42.970 回答
0

这里有几个问题。

第一个问题:为什么不显示文件夹预览?这是因为您通过循环 $images 数组来显示预览,但您没有向该数组添加目录(请参阅您的代码,检查它是否为 is_dir,然后调用“继续;”)。如果要包含目录,则应将它们包含在 $images 数组中(或对它们执行其他操作)。

第二个问题:如何删除?您需要扩展现有的 PHP 脚本或编写另一个脚本。您将在删除图标上创建一个链接;链接的 href 将指向新的(或现有的)PHP 脚本,您可以将要删除的文件夹或文件作为参数传入。如果是文件夹,则使用 rmdir()。如果是文件,则使用 unlink()。如果您需要,我稍后可以为您提供更多帮助。

于 2013-02-05T16:52:45.830 回答