当文件存在于服务器上时,不要显示按钮

时间:2017-08-29 14:08:22

标签: php html css display file-exists

我只是在删除Web服务器上的特定文件时才尝试在HTML页面上显示下载按钮。我以为我会使用CSS display: none;然后使用带有while循环的PHP脚本,如下所示:

while (file_exists("/aaa/file.txt")) {
      sleep(5);
    }
//set display property of the invisibleLink class to block and continue

问题是我不知道如何做到最后一步,我所看到的关于用PHP修改CSS的每个线程都不适用于我的用例。

2 个答案:

答案 0 :(得分:1)

只需构建按钮并使用如下类隐藏它:

<style>
.hidden{ display:none;}
</style>

<?php
if(!file_exists("path") ){ $class = "hidden" }
  echo "<input type='button' class='$class' name='stuff'>woo</button>";
?>

答案 1 :(得分:1)

PHP在屏幕上显示任何内容之前执行,因此您可能无法执行此操作:代码只会睡5,然后在显示给用户之前继续生成其余的html。< / p>

您可能想要做的是将按钮标记为display:none,然后在页面完成时加载有一个js函数,该函数调用一个返回文件是否存在的php页面。让js函数循环,直到php页面说文件消失,然后让js函数显示按钮并停止循环。

<button type="button" id="test_btn" style="display: none;">Download</button>

<script type="text/javascript">
    $(document).ready(function () {
        checkFile();

        function checkFile() {
            $.ajax({
                url: '/path/to/file_checker.php',
                type: 'GET',
                success: function (data) {
                    if (data === "deleted") { // or whatever you want the response to be
                        $('#test_btn').show();
                    }
                    else {
                        checkFile(); // you can add a setTimeout if you don't want this running too often
                    }
                }
            });
        }
    }
</script>

然后你的文件检查器php可能类似于你所拥有的东西:

if (file_exists("/aaa/file.txt")) {
    echo "exists";
}
else {
    echo "deleted";
}