0

まず、Unlinkを使用してディレクトリから単一のファイルを削除することを知っています。ただし、私が知りたいのは、htmlインターフェイスを使用して、ディレクトリ内のすべてのファイルを選択できるように設定する方法です。

コードはいいのですが、立派な人に聞いてみるのは不公平です。したがって、正しい方向への突き出しも同様に良いでしょう。

4

3 に答える 3

5

このコードは、指定されたディレクトリ内のすべてのファイルを削除リンクで一覧表示します。削除ボタンをクリックすると、phpファイルを呼び出してajax(jquery)関数でファイルを削除します。複数のファイルが同じ名前を持っていないかどうかを確認してください。

ディレクトリ内のすべてのファイルを一覧表示する

<?php
$directory  = "your directory path"; 
$images = scandir($directory);
$ignore = Array(".", "..");
$count=1;
echo '<table border=1>';
foreach($images as $dispimage){
    if(!in_array($dispimage, $ignore)){
    echo "<tr id='del$count'><td>$count</td><td>$dispimage</td><td><input type='button' id='delete$count' value='Delete' onclick='deleteFile(\"$dispimage\",$count,\"$directory\");'></td></tr>";
    $count++;
    }
}
echo '</table>';
?>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function deleteFile(fname,rowid,directory)
{
    $.ajax({ url: "deletefile.php",
        data: {"filename":fname,"directory":directory},
        type: 'post',
        success: function(output) {
          alert(output);
          $("#del"+rowid).remove();
        }
    });
}
</script>

deletefile.php

<?php
$filename = $_POST['filename'];
$path = $_POST['directory'];
if(file_exists($path."/".$filename)) { 
 unlink($path."/".$filename); //delete file
}
?>
于 2012-04-24T12:21:12.687 に答える
0

次の関数は、ディレクトリ全体を削除するためのものです。

function readDirectory($dir){
$dir = opendir($dir);
while (($file = readdir($dir)) !== false)
  {
    if($file!="." and $file!=".."){
        echo "filename: " . $file . "<br />";
    }
  }
closedir($dir);
}
function rrmdir($dir) {
    if (is_dir($dir)) {
    $objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir")rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}   
reset($objects);
rmdir($dir);
}
}
于 2012-04-24T12:01:08.867 に答える
0

オープン ソース版の php ファイル マネージャーについては、こちらを参照してください。そのコードを確認するか、直接使用することができます。ここにサンプルコードを貼り付けてその操作を行うのは簡単ではありません。

于 2012-04-24T11:48:25.233 に答える