4

機能に問題がありunlinkます。

更新すると、新しく追加されたファイルのディレクトリを検索するページがあります。ユーザーはファイルを管理することを選択でき、任意のファイルを削除することもできます。ただし、ユーザーがファイルを削除すると、実際のファイルがサーバー ディレクトリから削除されるまでに約 5 秒の遅延があります。その間、ユーザーがブラウザを更新すると、削除されるはずだった同じファイルが新しいファイルとして再表示されます。これに関する問題は、ユーザーがこのファイルを再度削除すると、最初の遅延のためにファイルが存在しなくなることです...

これについて何か考えはありますか?それは私を夢中にさせており、この状況を改善する方法がわかりません...

4

2 に答える 2

1

解決策の 1 つは、unlink() を呼び出すときに新しいファイルを作成し、新しいファイルに $original_filename."_deleted" という名前を付けることです。次に、ファイルをリストするときに、「_deleted」で終わるファイルを除外します。次に、すべての「_deleted」ファイルを cron ジョブで頻繁にクリーンアップすることを心配する必要があります。

    function my_unlink($filename){
      touch($filename.'_deleted');
      unlink($filename);
    }

    function list_files(){
      if ($handle = opendir('.')) {
        while (false !== ($entry = readdir($handle))) {
            if ($entry != "." && $entry != ".." && !preg_match('/_deleted$/',$entry)) {
                echo "$entry\n";
            }
        }
        closedir($handle);
      }
    }
于 2013-05-11T00:19:40.350 に答える