如何解决如何在Elfinder File Manager中使用JavaScript修复添加事件?
我想使用 Handlers / Add Event 和javascript在elfinder文件管理器中创建文件。我想将数据保存在db中。但是在创建新文件时,添加事件不起作用。当已有相同名称的文件时,此事件将起作用。你能给我个主意吗?预先谢谢您。
if (! require.defined('elfinderConfig')) {
define('elfinderConfig',{
defaultOpts : {
url : 'elfinder/PHP/connector.minimal.PHP',handlers : {
add: function(event,fm){
var files = event.data.added;
var paths = [];
files.forEach(function(item){
paths.push('C:\\**\\elfinder\\' + fm.path(item.hash,true) + '\\' + fm.path(item.name,true));
});
$.ajax({
url:"elfinder/PHP/savePathsToJR.PHP",type: "POST",data: {userName: userName,paths: paths},success: function(item){
}
});
},},});
}
我们意识到问题源于connector.minimal.PHP中的访问功能。我们的代码如下。我们正在控制数据库的授权,以便允许用户查看文件。如果我们取消此功能,我们的处理程序添加事件 工作正常。因为它无法通过访问功能传递,所以它不会触发添加事件。
访问功能为
function access($attr,$path,$data,$volume,$isDir,$relpath) {
$username = $_SESSION['session_login'];
$serverName = "***";
$options = array( "UID" => "TestUser","PWD" => "**","Database" => "**","CharacterSet"=>"UTF-8");
$conn = sqlsrv_connect($serverName,$options);
if( $conn === false )
{
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(),true));
}
$query = "Select permitted_file_path from USER_FILE_PATHS where username = '" . $username . "'";
$stmt = sqlsrv_query( $conn,$query);
if($stmt === false)
{
echo "Error in query preparation/execution.\n";
die(print_r( sqlsrv_errors(),true));
}
$permittedpaths = array();
while($row = sqlsrv_fetch_array( $stmt,sqlSRV_FETCH_ASSOC))
{
array_push($permittedpaths,$row['permitted_file_path']);
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
$compare = in_array($path,$permittedpaths) ? false : true;
$retVal = $compare ? $compare : null;
return $retVal;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。