elFinder:设置当前上传目录

  • 本文关键字:设置 elFinder elfinder
  • 更新时间 :
  • 英文 :


我的目标是在初始化elFinder时设置当前上传目录。例如,我的"上传文件"链接有所需的工作目录,它是动态生成的。如何将目录传递给elFinder?

elFinder 2.1可以直接打开到任何带有URL哈希的文件夹。

前任。

  • 演示/图像:http://hypweb.net/elFinder-nightly/demo/2.1/#elf_l1_SW1hZ2Vz

  • 演示/欢迎:http://hypweb.net/elFinder-nightly/demo/2.1/#elf_l1_V2VsY29tZQ

是的,我想动态获取哈希。

这个怎么样。

$encode_func = function ($path, $root) {
    $p = $path == $root ? '' : substr($path, strlen($root)+1)
    if ($p === '')  {
        $p = DIRECTORY_SEPARATOR;
    }
    $hash = $this->crypt($p);
    $hash = strtr(base64_encode($hash), '+/=', '-_.');
    $hash = rtrim($hash, '.'); 
    return $hash;
};
$id   = '[uniqueId]_'; You must set same id into root option
$root = realpath('../image/data/');
$path = realpath('../image/data/product');
$hash = $id.$encode($path, $root);
$url_hash = '#elf_'.$hash;

基于nao-pon和elfinder类的一些简单的东西。

步骤1://在php中,根据文件路径进行散列,例如dirname("root/images/iphone/iphone6S.jpg")。它主要是基于64_encode

function elfinder_hash_path($path)
{
        if ($path == '')
            $path = DIRECTORY_SEPARATOR;
        $hash = substr($path, strlen("root-name")+1);
        // hash is used as id in HTML that means it must contain vaild chars
        // make base64 html safe and append prefix in begining
        $hash = strtr(base64_encode($hash), '+/=', '-_.');
        // remove dots '.' at the end, before it was '=' in base64
        $hash = rtrim($hash, '.');
        // append volume id to make hash unique
        return "l1_". $hash;
}

"l1"是elfinder中第一个本地文件系统的自动卷id。否则,您可以在connector.php选项"ID"=>"myid",中设置您的卷ID

第2步:如果从JS调用elfinder窗口,那么在elfinder初始化之后,绑定elfinder onload事件以跳转到您想要的目录。在这种情况下,保存在JS变量hasher中,从php获得。

var elf = $('#elfinder').elfinder({
    url : 'elfinder/php/connector.php',  // connector URL (REQUIRED)
    lang: 'sk',
    height: okno_vyska
}).elfinder('instance');
elf.bind('load', function(event) { elf.exec('open', hasher); });

更新:
如果这个js会话中还没有打开hashed的子目录,那么elf.exec('open',hasher)就不起作用,因此它不在缓存中,elfinder什么也不做
解决方法:使用
window.location.hash = hasher;
或在elf-init 之前更新本地存储中最后使用的目录

localStorage.setItem('elfinder-lastdirelfinder', hasher);

相关内容

  • 没有找到相关文章

最新更新