如何使用客户端事件 API 在 elFinder 中记录已删除的文件名?

Posted

技术标签:

【中文标题】如何使用客户端事件 API 在 elFinder 中记录已删除的文件名?【英文标题】:How can I log removed file name in elFinder with Client-event API? 【发布时间】:2021-06-18 15:09:18 【问题描述】:

我正在尝试为 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
        
    

Client-event-API

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

最重要的是urlname 添加的文件。

但在remove 我只得到:

0: "l1_UypQLTJfOC9TY3JlZW5zaG90IDIwMjEtMDMtMTEgYXQgMTUuMTguNDcucG5n"
length: 1

如何在 eFinder 中记录已删除的文件名?

【问题讨论】:

【参考方案1】:

因为路径编码方式可以随音量变化 驱动,客户端没有实现解码的功能。

但是,如果是默认编码方式,则可以解码为 跟随。

var hash = 'l1_RG93bmxvYWRz';
var encPath = hash.substr(hash.indexOf('_')+1);
var path = '/'+atob(encPath.replace(/\-/g, '+').replace(/_/g, '/').replace(/\./g, '='));

参考: https://github.com/Studio-42/elFinder/issues/2011

【讨论】:

以上是关于如何使用客户端事件 API 在 elFinder 中记录已删除的文件名?的主要内容,如果未能解决你的问题,请参考以下文章

在 Symfony 上使用 ElFinder:我无法选择图像

使用 CodeMirror 作为 elFinder 编辑器

java web项目 使用elfinder 实现文件管理器

我需要帮助将 elFinder 与 ASP.NET 集成和使用

Elfinder 选择文件夹以及独立弹出窗口中的文件

elfinder 配置