我作为一个独立的(不是一般文本编辑器的一部分)广泛使用Responsive FileManager。我有时会在一个页面上多次调用它。但是,每次我希望它被限制在某个文件夹时 - 不仅如此,它默认为文件夹,但是用户根本无法导航到任何其他文件夹。
我发现在Responsive FileManager中限制文件夹的唯一方法是设置PHP sesssion变量:
$_SESSION['RF']['subfolder']
但是,这对于需要在同一页面上的不同文件夹是一个问题,并且通常它是不切实际的,因为限制应该特定于文件管理器调用,而不是像会话那样的特定于用户。此外,我不需要以安全的方式导航到其他文件夹是绝对不可能的,如果知道如何使用浏览器调试器的人在其他地方导航,那就没问题。我只是想阻止临时用户这样做。
有没有办法用JS配置选项,或其他一些每次调用而非每用户的方式?
他们的功能列表说:
您可以将子文件夹设置为根目录,并更改每个用户,页面或FileManager调用的配置。
但我无法在他们的文档中找到每次调用的文件夹限制。
答案 0 :(得分:2)
这是一个简单的调整来实现这一目标。 Responisve filemanager调用了dialog.php,其中附加了一些类型的参数。我做的是:引入一个新的参数并在服务器端对其进行检查以动态设置上传路径。
考虑您的上传目录是 上传 您有 user1 , user2 , user3 作为子目录,那么,在这种情况下,我们将在调用 dialog.php <我们将传递的参数中动态设置 config.php 中的上传路径和当前路径/ strong>
在filemanager / config / config.php中 附加这些行
if( isset( $_GET['MY_UPLOAD_PATH']))
{
$config['upload_dir'] = $config['upload_dir'] . $_GET['MY_UPLOAD_PATH']."/" ;
$config['current_path'] = $config['current_path'] . $_GET['MY_UPLOAD_PATH']."/" ;
}
在filemanager / dialog.php中 找到这一行 $ get_params = http_build_query($ get_params); 就在那一行之前添加
if(isset($_GET['MY_UPLOAD_PATH'])){
$get_params['MY_UPLOAD_PATH'] = $_GET['MY_UPLOAD_PATH'] ;
}
现在更改变量
$ data ['file_explorer'] = base_url('assets / resources / filemanager / dialog.php?type = 0');
到
$data['file_explorer'] = base_url('assets/resources/filemanager/dialog.php?type=0&MY_UPLOAD_PATH=user1');
只需更改MY_UPLOAD_PATH参数的值,dialog.php将仅显示该特定目录。