我有 3 页;
第 1页:具有 AJAX 文件上传器的主页
第 2 页:(来自第 1 页的 AJAX 请求)处理文件上传器,启动会话并将文件名存储在会话中,如果上传了超过 1 个文件,则此页面被调用不止一次。
第 3 页:(来自第 1 页的 AJAX 请求)当第 2 页上传所有文件时,第 1 页向此页面发送请求,以便此页面发送一封电子邮件,其中包含存储在会话中的 2 个文件名,然后尝试清除整个会话,以便在第 1 页的页面刷新时为任何新上传做好准备。
现在我面临的问题是,在第 3 页中,会话没有被清除,所以每次我得到一个两倍大的会话数组,因为它有之前的文件名,以及现在刚刚放入的文件名.
这是我正在使用的代码:
第 1 页:普通 JS 和 Ajax 请求
第2页:
这个实际上设置了会话内的数组
session_start();
send_nosniff_header();
nocache_headers();
//BLA BLA BLA - here is where the actual file uploader code is suppose to be
//Here is the session im setting and storing
if (!isset($_SESSION['arraystuff'])) {
$_SESSION['arraystuff'] = array();
}
$_SESSION['arraystuff'][] = $uploads_dir.'/'.$filename;
第 3 页:
这个发送一封电子邮件,其中包含存储在会话中的每个文件名
if(isset($_GET['uploadComplete'])){
session_start();
//Get foreach filenames inside session and send email
$_SESSION = array();
session_destroy();
}
然而会话没有被清除以便下一个正常工作,因为每次发送电子邮件时,之前会话中的先前文件名也被发送并且没有被清除。