gpt4 book ai didi

javascript - elFinder 覆盖 'rm' PHP

转载 作者:行者123 更新时间:2023-12-03 09:13:30 24 4
gpt4 key购买 nike

我正在使用 elFinder 来管理网站的资源,它的默认功能运行良好;但是我需要向位于我的 Controller 中的几个 PHP 函数添加一些额外的逻辑。

我想要添加逻辑的地方是<elfinder_Dir>/PHP/elFinderVolumeLocalFileSystem.php特别是在函数 _unlink($path) 中在实际删除文件之前,我想调用另一个类来销毁该 Assets 的数据库条目。

原始函数如下所示:

protected function _unlink($path) {
return @unlink($path);
}

当我尝试添加如下代码时:

protected function _unlink($path) {
var_dump($path);
return @unlink($path);
}

或者

//top of file...
use controllers\ResourceManager;

//OR
//include <pathToResourceManager>

//...

protected function _unlink($path) {
ResourceManager::delteFromDB();
return @unlink($path);
}

我在屏幕上收到此警报:

MalformedBackend

我还注意到,当给出该消息时,“网络”选项卡中的 header 显示响应 header 内容类型为 text/html而不是application/json正如 elFinder 的 JS 部分所预期的那样。

为什么当我添加自定义逻辑时标题内容类型会发生更改?有没有更好的方法将此功能添加到项目中?

最佳答案

我的问题的答案非常简单。

1) error_reporting(0); 正在消除与使用正确的文件命名空间相关的所有错误,我将其更改为 error_reporting(E_ALL)这样我就可以看到真正的问题。

2) 文件需要添加到命名空间,因为我使用相同的命名空间,所以没有任何额外的include_once() 调用。

接下来我必须添加替换这一行:

$class = 'elFinderVolume'.(isset($o['driver']) ? $o['driver'] : '');

与:

$class = __NAMESPACE__ . '\\elFinderVolume'.(isset($o['driver']) ? $o['driver'] : '');

这允许正确加载驱动程序(现在位于命名空间中)。

完成这些更改后,一切都很好,我可以在需要的地方添加自己的逻辑。

关于javascript - elFinder 覆盖 'rm' PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com