码迷,mamicode.com
首页 > Web开发 > 详细

PHP服务器文件管理器开发小结(四):利用SESSION响应文件夹导航

时间:2015-02-16 19:48:35      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:php   lamp   文件管理器   session   jquery   

书接上回,在首文件夹(HOME)图标的旁边是回到上级文件夹(UP)和刷新当前文件夹(REFRESH)两个图标,对应的图片链接为:

        <li><a href="#" title="up" onClick="onUp()"><img src="images/upfolder48.png" class="topmenu" /></a></li>
        <li><a href="#" title="refresh" onClick="onRefresh()"><img src="images/listrefresh48.png" class="topmenu" /></a></li>

对应的事件代码为:

function onRefresh()
{
    var strDirName = "refresh";
    var strEncodedName = escape(strDirName);
    $.post("query.php", {act:strEncodedName}, function (data) {
        $(‘#spanDirTable‘).html(data);
    });
}
function onUp()
{
    var strDirName = "back";
    var strEncodedName = escape(strDirName);
    $.post("query.php", {act:strEncodedName}, function (data) {
        $(‘#spanDirTable‘).html(data);
    });
}

可以看出,这里在POST时并没有提交需要跳转的文件夹路径,需要根据具体浏览上下文环境获取对应的文件夹。因此,服务器端需要有能力获取当前浏览的文件夹路径。幸好,PHP为我们准备了SESSION。PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

在您把用户信息存储到 PHP session 中之前,首先必须启动会话。

注释:session_start() 函数必须位于 <html> 标签之前:

<?php
session_start();
?>
<html>
<head>

需要注意的是,如果部署了多个网页并且需要共享PHP,则各个网页都需要在开始处使用session_start()。

PHP中使用$_SESSION存取SESSION变量。在上一节输出文件夹内容列表后保存当前浏览的文件夹:

    if ($isDirContentView)
    {
        echo createDirContentTable($strDirName);
        $_SESSION["currDir"] = $strDirName;
    }

这样,就将$strDirName保存到$_SESSION["currDir"]中。

下面这段代码响应刷新文件夹内容的操作:

            case "refresh":
                $isDirContentView = true;
                if (isset($_SESSION["currDir"])) 
                {
                    $strDirName = $_SESSION["currDir"];
                }
                else $strDirName = "/home";
                break;

如果当前文件夹已保存,则导航至当前文件夹,否则跳转至预设的首文件夹"/home"

下面这段代码则响应回到上一级文件夹的操作:

            case "back":
                $isDirContentView = true;
                if (isset($_SESSION["currDir"])) 
                {
                    $strDirName = $_SESSION["currDir"];
                    $strDirName = rtrim($strDirName, "/");
                    $listDir = explode("/", $strDirName);
                    $nBackLength = strlen(end($listDir));
                    $strDirName = substr($strDirName, 0, 0-$nBackLength);
                    if ($strDirName == "") $strDirName = "/home";
                }
                else $strDirName = "/home";
                break;

上一级目录名是通过分析字符串得到的,并且限制在/home下。

另外,前端可以通过jQuery实现网页打开时预加载首文件夹内容:

$(document).ready(function(){
	onHome();
});

即当页面加载完成后,执行onHome()函数。

本文出自 “Accplayer的小地方” 博客,请务必保留此出处http://accplaystation.blog.51cto.com/9917407/1614658

PHP服务器文件管理器开发小结(四):利用SESSION响应文件夹导航

标签:php   lamp   文件管理器   session   jquery   

原文地址:http://accplaystation.blog.51cto.com/9917407/1614658

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!