Ajax文件浏览器;有什么好的做法

时间:2011-03-07 13:54:13

标签: php jquery jstree filebrowse

我正在使用基于PHP和Javascript的文件浏览器(如果您愿意,这是一个非常简单的文件管理器)。

我正在使用我的文件夹构建树视图:

<ul id="treeview">
    <li><a href="#">Folder 1</a></li>
    <li><a href="#">Folder 2</a>
        <ul>
            <li><a href="#">Folder 2.1</a></li>
            <li><a href="#">Folder 2.2</a></li>
        </ul>
    </li>
    <li><a href="#">Folder 3</a></li>
</ul>

每个链接代表一个文件夹。我想从这里做的是在克隆文件夹后加载文件夹的内容。

我有这个PHP代码来做到这一点:

public function getContent($path)
{
    //fetch the content of $path directory
}

我有这个JS代码来处理事件:

$('#treeview a').live('click',function(e){
    e.preventDefault();
    var folder = //here : get the path
    loadContentInPanel(folder);
});

但我不知道如何安全地获取点击文件夹的路径。我应该直接在这样的属性中添加吗? :

<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li>

理想情况下,我希望最终用户看不到路径(至少不清楚)。我正在考虑与base64_encode()建立链接,但这是一个好主意吗?

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

如果您只需要简单的混淆(任何开发人员都能够立即获得真正的路径),那么base64_encode()是最简单的方法(前提是您的路径不超过600-700个字符)。

顺便提一下,请记住,安全性不应基于混淆,而应基于对您所嫉妒的资源的可靠访问检查。

答案 1 :(得分:1)

你已经放弃了使用树视图的文件夹的路径,我没有看到将它添加到实际元素的问题。

<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li>

将在

<ul id="treeview">//root
    <li><a href="#">Folder 1</a></li>
    <li><a href="#">Folder 2</a> //folder2

在“getContent”函数中执行所有安全检查,你会没事的。