离开网站时Javascript / PhP删除文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了离开网站时Javascript / PhP删除文件相关的知识,希望对你有一定的参考价值。
我正在寻找一种方法来删除在特定文件夹中生成的唯一文件。当用户离开页面而未完成“任务”时,应删除该文件。文件命名是通过uniqid()
统一的
我用以下方式尝试了它:
<script>
window.onbeforeunload = <?php unlink($_POST['localfile']) ?>;
</script>
但不知何故,这并不总是奏效。例如,当我使用后退按钮时,它正在工作,但当我将其他网址放入我的搜索栏并转到所需目的地时,例如google.com,该文件将不会被删除。我怎么能解决这个问题,还是有其他方法可以解决这个问题?
我不知道这将如何运作。您在此处混合客户端和服务器端代码。
<script>标记是javascript,将在客户端的计算机上执行。而<? PHP?当页面在服务器端生成并发送到客户端时,将触发>标记。
它可以在后退按钮上工作的唯一原因是因为当时设置了变量$ _POST。
执行此操作的最佳方法是使用window.onunload事件并发布ajax请求
该解决方案的唯一问题是,如果客户端计算机崩溃,它将不会运行javascript,因此您将实现一个不可靠的解决方案,最终得到一个充满旧文件的文件夹,需要定期清理。
如果您生成的文件小到足以保留在内存中,则应使用$ _SESSION变量。
javascript代码如下
<script>
document.body.onunload = function() {
var xhr = new XMLHttpRequest();
xhr.open("GET", './unlink.php, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
if (xhr.responseText) {
//somecode
}
else {
alert(xhr.responseText);
}
}
};
xhr.send();
}
</script>
另一种解决方案是在数据库中使用将自动删除的临时表。
如果您决定使用$ _SESSION变量,请记住调用session_start();在PHP脚本的开头。
您将从学习客户端/服务器关系中受益。
希望这可以帮助
以上是关于离开网站时Javascript / PhP删除文件的主要内容,如果未能解决你的问题,请参考以下文章
Meteor,ReactJS,MongoDB:当用户离开页面时执行某些操作
JavaScript实现添加班级和离开班级功能通知加入删除pushindexOfsplice