问题描述
我正在尝试为 elFinder 创建 Ajax 日志记录功能,因此我添加了事件处理程序:
'elfinder': {
handlers : {
add : function(event,elfinderInstance) {
console.log(event.data);
//console.log(event.data.selected); // selected files hashes list
},remove : function(event,elfinderInstance) {
console.log(event.data);
//console.log(event.data.selected); // selected files hashes list
}
}
}
从 add
事件我得到了我需要的所有数据,例如嵌套对象数据的一部分:
hash: "l1_UypQLTJfOC9TY3JlZW5zaG90IDIwMjEtMDMtMTEgYXQgMTUuMTguNDcucG5n"
isowner: false
mime: "image/png"
name: "Screenshot 2021-03-11 at 15.18.47.png"
phash: "l1_UypQLTJfOA"
read: 1
size: "60591"
tmb: 1
ts: 1616364008
url: "/PHP/../files/S%2AP-2_8/Screenshot%202021-03-11%20at%2015.18.47.png"
write: 1
但在 remove
我只得到:
0: "l1_UypQLTJfOC9TY3JlZW5zaG90IDIwMjEtMDMtMTEgYXQgMTUuMTguNDcucG5n"
length: 1
解决方法
因为路径编码方式可以随音量改变 驱动,客户端没有实现解码功能。
但是如果是默认的编码方式,可以解码为 如下。
var hash = 'l1_RG93bmxvYWRz';
var encPath = hash.substr(hash.indexOf('_')+1);
var path = '/'+atob(encPath.replace(/\-/g,'+').replace(/_/g,'/').replace(/\./g,'='));