CKFinder 3 带有两个配置文件
config.php
– 服务器端配置文件,本文档将对其进行解释。config.js
– 可选的客户端配置文件,在关于 设置 JavaScript 配置 的 API 文档文章中进行了解释。以下选项可以在 config.php
文件中设置
选项名称 | 类型 | 描述 |
---|---|---|
accessControl | 数组 | 访问控制列表 (ACL),用于根据用户角色授予用户对 CKFinder 文件夹和文件进行不同操作的权限。 |
authentication | 函数 可调用对象 | 用于确定用户是否应该访问 CKFinder 的函数。 |
backends | 数组 | 后端配置,其中必须定义 CKFinder 应支持的所有存储类型(例如,本地文件系统上的目标路径;FTP 主机名、用户名和密码;Dropbox 帐户凭据)。 |
cache 3.1.0 | 数组 | 配置各种 CKFinder 组件的缓存生命周期。 |
checkDoubleExtension | 布尔值 | 是否允许使用双文件扩展名。 |
checkSizeAfterScaling | 布尔值 | 是否在缩放前或缩放后检查图像的尺寸以确定最大允许尺寸。 |
debug | 布尔值 | 打开/关闭调试模式。 |
debugLoggers | 数组 | 启用调试模式时使用的调试处理程序。 |
defaultResourceTypes | 字符串 | 配置应向最终用户显示的资源类型。 |
disallowUnsafeCharacters | 布尔值 | 不允许创建包含在 IIS Web 服务器上不安全的字符的文件夹和上传文件。 |
csrfProtection 3.2.0 | 布尔值 | 在连接器中启用 CSRF 防护。 |
forceAscii | 布尔值 | 强制文件和文件夹使用 ASCII 名称。 |
headers | 数组 | 要添加到每个连接器响应的 HTTP 标头。 |
hideFiles | 数组 | 无论其位置如何,都不应在 CKFinder 中显示的文件。 |
hideFolders | 数组 | 无论其位置如何,都不应在 CKFinder 中显示的文件夹。 |
htmlExtensions | 数组 | 允许在首个 kB 数据中包含 HTML 代码的文件类型。 |
images | 数组 | 图像配置,如最大允许宽度和高度。 |
licenseKey | 字符串 | CKFinder 许可证密钥。如果无效,CKFinder 将以演示模式运行。 |
licenseName | 字符串 | CKFinder 许可证名称。如果无效,CKFinder 将以演示模式运行。 |
overwriteOnUpload | 字符串 | 是否在上传时覆盖文件,而不是自动重命名。 |
plugins | 数组 | 要启用的插件列表。 |
pluginsDirectory | 字符串 | 连接器插件目录的路径。 |
privateDir | 数组 | 私有目录位置和设置。 |
resourceTypes | 数组 | CKFinder 中处理的资源类型。每个资源类型都表示为 CKFinder 中的“根”文件夹(例如,Files 和 Images),并指向已配置后端的特定文件夹。 |
roleSessionVar | 字符串 | CKFinder 必须用来检索当前用户的“角色”的会话变量名称。 |
secureImageUploads | 布尔值 | 是否在上传图像文件时执行其他检查。 |
sessionWriteClose 3.1.0 | 布尔值 | 连接器是否应关闭对会话的写入访问权限,以避免性能问题。 |
tempDirectory 3.1.0 | 字符串 | CKFinder 使用的临时文件文件夹的路径。 |
thumbnails | 数组 | 内部缩略图配置。 |
xSendfile | 布尔值 | 是否使用 X-Sendfile 模块发送文件。 |
注意: config.php
是一个普通的 PHP 文件,因此如果在其中犯了错误,例如忘记分号,应用程序可能会停止工作。
访问控制列表 (ACL) 是一项功能,它允许您的用户对 CKFinder 文件夹和文件进行不同的操作。放置在 config.php
文件中的默认设置向每个用户授予所有选项的完全权限。
ACL 条目的语法如下
访问控制列表条目使用以下值定义
选项名称 | 类型 | 描述 |
---|---|---|
role | 字符串 | 提供 ACL 设置的用户角色(请参阅 roleSessionVar)。默认情况下,它设置为 * (星号),表示“所有人”。 |
resourceType | 字符串 | 资源类型的名称(请参阅 resourceTypes)。默认情况下,它设置为 * (星号),表示“所有资源类型”。 |
folder | 字符串 | 将使用限制的文件夹。默认情况下,它设置为 / (斜杠),表示“资源类型的根文件夹”。 |
FOLDER_VIEW | 布尔值 | 用户是否可以查看文件列表。 |
FOLDER_CREATE | 布尔值 | 用户是否可以创建文件夹。 |
FOLDER_RENAME | 布尔值 | 用户是否可以重命名文件夹。 |
FOLDER_DELETE | 布尔值 | 用户是否可以删除文件夹。 |
FILE_VIEW | 布尔值 | 用户是否可以查看文件内容。 |
FILE_CREATE | 布尔值 | 用户是否可以创建(例如,上传)文件。 |
FILE_RENAME | 布尔值 | 用户是否可以重命名文件。 |
FILE_DELETE | 布尔值 | 用户是否可以删除文件。 |
IMAGE_RESIZE | 布尔值 | 选择图像时,用户是否可以将其调整为配置文件中预定义的尺寸。 |
IMAGE_RESIZE_CUSTOM | 布尔值 | 选择图像时,用户是否可以将其调整为任何尺寸。 |
注意: IMAGE_RESIZE
和 IMAGE_RESIZE_CUSTOM
选项对应于选择调整大小功能,该功能会自动创建所选图像的调整大小版本。它们不会影响在 CKFinder 的图像编辑器(编辑功能)中修改的图像的调整大小。
可以定义多个 ACL 条目。所有属性都是可选的。子文件夹从其父级定义继承其默认设置。
重要的是要了解 folder
条目的含义。在 ACL 定义中,folder
是相对于资源类型位置的路径。这不是服务器上文件夹的绝对路径。
如果 Files
资源类型指向 /home/joe/www/example.com/userfiles/files/
,则为 Files
资源类型中的 /documents
文件夹定义的 ACL 将应用于 /home/joe/www/example.com/userfiles/files/documents/
。
请查看以下示例,这些示例展示了各种权限配置,以进一步了解如何在 CKFinder 中使用访问控制列表。
在 Images
资源类型的 /Logos
文件夹中禁止文件操作。
若要限制在 Images
资源类型的 Logos
文件夹中上传、重命名或删除文件,请使用以下 ACL 设置
注意: 此示例仅引用 /Logos
文件夹中的文件操作。它不限制对文件夹的操作,因此用户仍然可以删除或重命名它。若要限制用户修改文件夹本身(而不是其内容)的能力,您还应更改文件夹权限。
使所有资源类型的 /Logos
文件夹完全只读。
若要限制在所有资源类型(*
)的 /Logos
文件夹(包括 /Logos
文件夹本身)中上传、重命名或删除文件以及创建、重命名和删除文件夹,请使用以下 ACL 设置
使用这些权限,用户甚至没有权利用选择调整大小功能创建现有图像的调整大小版本。
由于权限由子文件夹继承,因此只需定义将由 ACL 条目进一步修改的权限即可。CKFinder 中的默认设置允许所有人执行所有操作
这意味着,要禁止除查看以外的任何文件夹操作,您可以设置
无需重复所有设置为 true
的条目。
用于确定用户是否应该访问 CKFinder 的函数。它也可以是任何类型的 PHP 可调用对象。
在没有任何其他检查的情况下启用 CKFinder
警告: 不要简单地返回 true
。这样做会允许“任何人”上传和列出您服务器上的文件。您应该实现某种会话验证机制,以确保只有受信任的用户才能上传或删除您的文件。
假设 $_SESSION['IsAuthorized']
在用户登录系统后立即设置为 true
。您可以检查此会话变量,而不是总是返回 true
任何类型的 PHP 可调用函数都可以设置为 authentication
,因此可以传递函数名而不是显式定义函数
假设您在应用程序中的某个文件中定义了以下函数,该文件名为 foo.php
在 config.php
中
您还可以传递包含方法的数组,而不是显式定义函数。
假设您在应用程序中的某个文件中定义了以下函数,该文件名为 foo.php
在 config.php
中
后端用于 资源类型定义 中,作为文件应存储位置的存储定义。虽然后端和资源类型密切相关,但它们被分别定义以简化配置,例如,使用相同的 FTP 帐户来定义四种不同的资源类型,它们之间的唯一区别是 FTP 服务器上的子文件夹的名称。
一个连接到定义为 my_ftp
的后端和两种资源类型的示例
以下列出的选项集可用于任何后端类型。
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 后端的唯一名称。 |
adapter | 字符串 | 此后端使用的适配器类型 - local 用于本地文件系统。 |
baseUrl 可选 | 字符串 | 用于直接访问 CKFinder 文件的基 URL。此 URL 必须对应于存储 CKFinder 用户文件的目录。 |
useProxyCommand 可选 3.1.0 | 布尔值 | 是否应将存储在此后端的链接指向 代理 命令。 |
useProxyCommand
选项允许您服务 CKFinder 中存储的任何文件。创建指向网页文件的链接在某些情况下可能很困难,甚至不可能(例如,当文件存储在私有 FTP 服务器上,或文件不在 Web 服务器根文件夹中时)。为后端启用此选项会告诉 CKFinder 使用 代理 命令创建指向文件的链接。
以这种方式服务文件具有以下优点
Proxy
命令服务的文件在浏览器中缓存的时间长度。这种方法的缺点是所有指向文件的链接都将依赖于 CKFinder 连接器,因此如果您决定有一天删除 CKFinder,这些链接将无法正常工作。
CKFinder 连接器使用 文件系统抽象层,它允许透明地使用许多不同的文件系统。您可以在下面找到支持的后端的列表及其配置选项。
这是 CKFinder 中的默认后端,它指向服务器本地文件系统中的文件夹。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 后端的唯一名称。 |
adapter | 字符串 | 此后端使用的适配器类型 - local 用于本地文件系统。 |
baseUrl 可选 | 字符串 | 用于直接访问 CKFinder 文件的基 URL - 此 URL 必须对应于存储 CKFinder 用户文件的目录。 |
root | 字符串 | 包含 CKFinder 用户文件的目录的文件系统路径。该目录必须存在于服务器上。 |
chmodFiles | 整数 | 在 CKFinder 中创建的文件(例如上传、复制、移动文件)的权限。使用八进制值。 |
chmodFolders | 整数 | 在 CKFinder 中创建的文件夹的权限。使用八进制值。 |
filesystemEncoding | 字符串 | 本地文件系统中文件和文件夹名称的编码。 |
useProxyCommand 可选 3.1.0 | 布尔值 | 是否应将存储在此后端的链接指向 代理 命令。 |
followSymlinks 可选 3.4.3 | 布尔值 | 启用对 UNIX 符号链接的支持。如果启用此选项,后端上的符号链接将被视为普通文件或文件夹。 重要:如果您启用此选项,请确保为符号链接指向的文件或目录设置了正确的文件系统权限。多个 Web 服务器的默认配置不允许访问定义的 document root 之外的文件。 |
此后端允许您将 Dropbox 帐户中的任何文件夹附加到 CKFinder。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 后端的唯一名称。 |
adapter | 字符串 | 此后端使用的适配器类型 - dropbox 用于 Dropbox。 |
username | 字符串 | Dropbox 帐户用户名。 |
appKey | 字符串 | Dropbox 应用程序 app key 。 |
appSecret | 字符串 | Dropbox 应用程序 app secret 。 |
accessCode | 字符串 | Dropbox 应用程序访问代码。 |
baseUrl 可选 | 字符串 | 用于直接访问 Dropbox 上的 CKFinder 文件的基 URL(如果您使用公共文件夹,则可以找到所有公共文件的通用前缀)。 |
root 可选 | 字符串 | 包含 CKFinder 用户文件的目录路径。该目录必须存在于服务器上。 |
useProxyCommand 可选 3.1.0 | 布尔值 | 是否应将存储在此后端的链接指向 代理 命令。 |
要将 CKFinder 与 Dropbox 一起使用,您需要一个应用程序访问代码、app key 和 app secret。
首先,访问 Dropbox 应用程序控制台 并创建一个新的应用程序。
请注意,在创建应用程序时,您可以定义要通过此应用程序访问的文件夹或整个 Dropbox 帐户。选择在 CKFinder 中使用 Dropbox 所需的所有权限非常重要 - 您可以在下面找到所需权限的完整列表。
创建应用程序后,可以在应用程序页面上的“设置”选项卡中找到 app key
和 app secret
。您也可以在那里生成访问令牌,但它是可过期的,持续时间为 4 小时,可以供开发人员快速测试 Dropbox 应用程序 (您不需要为了使 ckfinder 工作而生成它)。CKFinder 会自动刷新访问令牌,借助您将在下一步生成的 appKey
、appSecret
和 accessCode
。
Dropbox 应用程序的最低权限
CKFinder 为了工作需要以下权限
✓ files.metadata.write - 查看和编辑 Dropbox 文件和文件夹的信息,
✓ files.metadata.read - 查看 Dropbox 文件和文件夹的信息,
✓ files.content.write - 编辑 Dropbox 文件和文件夹的内容
✓ files.content.read - 查看 Dropbox 文件和文件夹的内容
✓ sharing.write - 查看和管理您的 Dropbox 共享设置和协作者
✓ sharing.read - 查看您的 Dropbox 共享设置和协作者
如果您更改权限,请记住清除缓存并为新的设置生成新的访问令牌才能生效。
如何生成访问代码?
请记住,在生成访问代码之前设置权限!请阅读有关所需权限集的信息。
要接收 Dropbox 访问代码,您需要使用以下链接,并将 APPKEYHERE
部分替换为您 Dropbox 应用程序的 app key
确认关于信任开发人员应用程序的警告并允许应用程序管理您的数据。将访问代码复制到配置中的 Dropbox 后端的 accessCode
选项。
访问代码有什么用?
访问代码是在 Dropbox OAuth API 中进行正确身份验证所必需的。作为响应,我们将获得访问令牌、访问令牌的过期时间和刷新令牌。CKFinder Dropbox 适配器需要访问令牌才能工作,刷新令牌需要在旧令牌过期后生成新的访问令牌。这些令牌保存在 CKFinder 应用程序的缓存中。如果您清除缓存,刷新令牌将丢失,CKFinder 将尝试生成一个新的令牌。不幸的是,访问代码是一次性的,因此您需要生成一个新的访问代码,否则会出现无效配置异常。
注意旧版 Dropbox 应用程序以及旧版生成的访问令牌。
以旧方式生成的访问令牌(现在不可能)仍然有效,因为它们仍然是不可过期的。2022 年 10 月 14 日的信息。
此后端允许您将 Amazon S3 存储附加到 CKFinder。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 后端的唯一名称。 |
adapter | 字符串 | 此后端使用的适配器类型 - s3 用于 Amazon S3。 |
bucket | 字符串 | 存储桶名称。 |
区域 | 字符串 | 区域标识符。有关区域及其端点的列表,请参阅 https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region |
密钥 | 字符串 | 访问密钥。 |
秘密 | 字符串 | 秘密值。 |
签名 可选 | 字符串 | 区域的签名版本(默认设置为 v4 )。有关区域和支持的签名版本的列表,请参阅 https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region。 |
可见性 可选 | 字符串 | 存储文件的可见性。默认值为 private ,这意味着上传到 S3 的文件将无法直接访问(使用文件 URL)。要启用直接访问,请将此值设置为 public 。 |
baseUrl 可选 | 字符串 | 用于直接访问 Amazon S3 上的 CKFinder 文件的基 URL(如果文件公开可见,您可以找到它们的通用前缀,例如 https://s3-eu-west-1.amazonaws.com/bucket )。 |
root 可选 | 字符串 | 包含 CKFinder 用户文件的目录路径。该目录必须存在于服务器上。 |
useProxyCommand 可选 3.1.0 | 布尔值 | 是否应将存储在此后端的链接指向 代理 命令。 |
要创建 AWS 访问密钥,请参阅 Amazon Web Services 文档。
注意:请遵循 IAM 最佳实践,不要使用您的 AWS 根访问密钥。
此后端允许您将您的 FTP 服务器帐户连接到 CKFinder。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 后端的唯一名称。 |
adapter | 字符串 | 此后端使用的适配器类型 - ftp 用于 FTP。 |
主机 | 字符串 | 服务器主机名。 |
username | 字符串 | FTP 用户名。 |
密码 | 字符串 | FTP 用户密码。 |
baseUrl 可选 | 字符串 | 用于直接访问 FTP 服务器上 CKFinder 文件的基 URL。 |
root 可选 | 字符串 | 包含 CKFinder 用户文件的目录路径。该目录必须存在于服务器上。 |
useProxyCommand 可选 3.1.0 | 布尔值 | 存储在此后端上的文件的链接是否应指向 代理 命令。 |
端口 可选 | 整数 | FTP 服务器端口(默认设置为 21 )。 |
ssl 可选 | 布尔值 | 确定是否应使用安全 SSL-FTP 连接的标志(默认设置为 false )。 |
超时 可选 | 整数 | 确定是否应使用安全 SSL-FTP 连接的标志(默认设置为 90 )。 |
utf8 可选 | 布尔值 | 确定是否应使用安全 SSL-FTP 连接的标志(默认设置为 false )。 |
被动 可选 | 布尔值 | 打开或关闭被动模式(默认设置为 true ) |
传输模式 可选 | 整数 | 确定使用 FTP 传输文件的模式的标志(默认设置为 FTP_BINARY = 2 ) |
系统类型 可选 | 布尔值 | 确定 FTP 系统类型的标志(默认设置为 null 。可以设置为 windows 或 unix ) |
忽略被动地址 可选 | 布尔值 | 确定是否忽略被动地址的标志(默认设置为 null 。可以设置为 true 或 false ) |
Unix 列表中启用时间戳 可选 | 布尔值 | 确定是否在 Unix 列表中打开时间戳的标志(默认设置为 false ) |
手动递归 可选 | 布尔值 | 确定是否递归列出目录的标志(默认设置为 true ) |
此后端允许您将 Azure 存储附加到 CKFinder。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 后端的唯一名称。 |
adapter | 字符串 | 此后端使用的适配器类型 - azure 用于 Azure 存储。 |
帐户 | 字符串 | 帐户名称。 |
密钥 | 字符串 | 访问密钥。 |
baseUrl 可选 | 字符串 | 用于直接访问 Azure 上 CKFinder 文件的基 URL。 |
root 可选 | 字符串 | 包含 CKFinder 用户文件的目录路径。该目录必须存在于服务器上。 |
useProxyCommand 可选 | 布尔值 | 是否应将存储在此后端的链接指向 代理 命令。 |
有关创建和管理存储帐户密钥的信息,请参阅 Microsoft Azure 文档。
将在 CKFinder 的未来版本中提供。
将在 CKFinder 的未来版本中提供。
将在 CKFinder 的未来版本中提供。
将在 CKFinder 的未来版本中提供。
配置各种 CKFinder 组件的缓存生存期
thumbnails
- 缩略图图像的缓存生存期。imagePreview
- 由 ImagePreview 命令返回的图像的缓存生存期。proxyCommand
- 由 代理 命令提供的文件的缓存生存期。生存期定义为表示秒数的整数。如果提供的值不是大于 0 的正数,则组件的缓存将被禁用。
是否允许带有双文件扩展名的文件。由于 Apache 模块的安全问题,建议保持 checkDoubleExtension
启用状态。
假设以下场景
php
不在允许的扩展名列表中,则无法上传名为 foo.php
的文件。rar
(或任何其他)扩展名添加到允许的扩展名列表中,则可以上传名为 foo.rar
的文件。foo.php.rar
具有 rar
扩展名,因此理论上也可以上传。在某些情况下,Apache 可以像对待任何其他 PHP 脚本一样对待 foo.php.rar
文件并执行它。
如果 checkDoubleExtension
启用,则会检查点 (.
) 后文件名中的每个部分,而不仅仅是最后部分。如果扩展名被禁止,则点 (.
) 将被替换为下划线 (_
)。在这种情况下,上传的 foo.php.rar
文件将被重命名为 foo_php.rar
。
指示上传图像的文件大小必须仅在缩小(如果需要)后根据资源类型配置中定义的 maxSize
设置进行检查。否则,会在上传后立即检查大小。
打开/关闭调试模式。参见 调试和日志记录
指定调试处理程序。可以提供多个处理程序。参见 调试和日志记录。
选项名称 | 描述 |
---|---|
ckfinder_log | 在位于私有 CKFinder 文件夹中的日志文件中报告错误(/ckfinder/userfiles/.ckfinder/logs/error.log )。 |
error_log | 在服务器日志中报告错误(Apache 中的 error_log )。 |
firephp | 如果 Firefox 中安装了 FirePHP 或 Google Chrome 中安装了 FirePHP4Chrome,则直接在 Firebug 控制台中报告错误。 |
应加载的 资源类型名称 的逗号分隔列表。如果留空,则加载所有资源类型。
禁止创建名称包含在 IIS Web 服务器上不安全的字符的文件夹和上传文件。提高 IIS Web 服务器上的安全性。
在连接器中启用 CSRF 保护。默认的 CSRF 保护机制基于 双提交 cookie。
强制文件和文件夹的 ASCII 名称。如果启用,带有变音符号的字符,例如 å
、ä
、ö
、ć
、č
、đ
或 š
将自动转换为 ASCII 字母。
应添加到每个连接器响应中的标头。
定义 CORS 标头。
无论其位置,都不应在 CKFinder 中显示的文件。不接受路径,仅接受文件名,包括扩展名。*
(星号)和 ?
(问号)通配符被接受。
隐藏以点字符开头的文件。
无论其位置如何,都不应在 CKFinder 中显示的文件夹。
隐藏所有以点字符开头的文件夹以及另外两个文件夹:CVS
和 __thumbs
。
可能允许在数据的前 1 kB 中包含 HTML 代码的文件类型。
有时在上传文件时,可能会发生文件在前几千字节的数据中包含 HTML 代码。仅当文件扩展名在 htmlExtensions
中指定时,CKFinder 才会上传包含 HTML 代码的文件。
为了上传文件开头包含 HTML 代码的 .xsl
文件,请将 xsl
扩展名添加到列表中。
请注意,此功能仅执行一组非常基本的检查以检测文件中前 1 kB 内容中的类似 HTML 的数据,以保护用户免受例如无意中上传包含 HTML 内容且扩展名错误的文件。
注意:包含类似 HTML 的数据的恶意文件可能使用各种 UTF 编码。要验证所有可能的编码,请确保在您的服务器上启用了 mbstring
PHP 扩展。
CKFinder 的图像配置。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
maxWidth | 整数 | 上传图像的最大宽度。如果图像大小大于指定的大小,则图像将调整为定义的尺寸。 |
maxHeight | 整数 | 上传图像的最大高度。如果图像大小大于指定的大小,则图像将调整为定义的尺寸。 |
质量 | 整数 | 创建图像的质量,范围为 1 到 100。质量值越小,调整大小的图像尺寸越小。请注意,可接受的质量值为大约 80-90。 |
大小 可选 | 数组 | 可以从 CKFinder 中轻松选择并传递到外部应用程序(例如 CKEditor)的图像的预定义大小,而无需手动调整图像大小。关联数组的键被翻译并用作“选择缩略图”上下文菜单中的条目。特定条目的翻译标签取自语言文件,例如 small 将被翻译为 lang.image['small'] 。如果当前语言未设置翻译键,则使用英文版本。如果未找到英文版本,则使用未翻译的字符串(将第一个字母设置为大写)。 |
阈值 可选 | 数组 | CKFinder 在应用程序的不同部分显示图像预览时使用的低级内部配置选项。如果 CKFinder 的缓存中已经存在已调整大小的图像版本,并且该图像的大小与请求的大小几乎相同(在定义的阈值内),CKFinder 将使用该图像。此选项通过以下方式提高性能:(i)避免具有几乎相同大小的图像的过多副本;(ii)避免在每次预览时缩放图像。 |
CKFinder 许可证密钥。如果无效,CKFinder 将以演示模式运行。
CKFinder 许可证名称。如果无效,CKFinder 将以演示模式运行。
更改 CKFinder 上传与文件夹中已存在的文件同名文件时的默认行为。如果启用,则现有文件将被覆盖,而不是自动重命名文件。
此选项包含将在 CKFinder 连接器中启用的插件列表。
下面给出的配置示例假设您已安装 文档示例插件。此包包含三个名为 DiskQuota
、GetFileInfo
和 UserActionsLogger
的插件。
要启用的插件可以通过两种方式定义
使用插件名称
使用数组表示法,明确设置插件文件的路径,例如下面 CustomPlugin
插件
注意: 插件通常提供一些可以在 CKFinder 主要配置文件中设置的配置选项。有关详细信息,请查看特定插件的文档。
此选项定义插件目录的路径。
连接器查找插件的默认目录路径是 plugins
目录,它位于 config.php
文件所在的目录中。
有关插件和插件目录结构的更多信息,请参阅 插件 文章。
注意: 最安全且最推荐的选项是将插件目录提供为绝对路径。
内部目录配置。
重要: CKFinder 需要经常访问这些目录,因此建议将此文件夹保留在本地文件系统上。
选项名称 | 类型 | 描述 |
---|---|---|
backend | 字符串 | 数组 | 私有目录应位于其中的后端。 |
cache | 字符串 | 数组 | 用于缓存文件的内部文件夹。 |
logs | 字符串 | 数组 | 用于日志的内部文件夹(请注意,将日志记录到文件仅在日志文件存储在本地文件系统后端时有效)。 |
tags | 字符串 | 数组 | 用于存储文件标签(元数据)(用于将来的版本)的内部文件夹。 |
thumbs | 字符串 | 数组 | 用于内部缩略图(图像预览)的文件夹。默认情况下,它位于 cache 文件夹中。 |
将私有目录位置设置为 default
后端内的 .ckfinder
文件夹。
将私有目录位置设置为 default
后端内的 .ckfinder
文件夹。logs
位置配置为使用不同的后端(logs_backend
)和日志文件夹。
资源类型只不过是在不同路径下对文件进行分组的一种方式,每个路径都有不同的配置设置。资源类型在 CKFinder 中表示为“根文件夹”。每个资源类型可以使用不同的 后端。
默认情况下,CKFinder 配置文件预先配置了两种示例资源类型:Files
和 Images
。配置的资源类型数量没有限制。您可以更改或删除默认类型,但请确保至少配置一种资源类型。
选项名称 | 类型 | 描述 |
---|---|---|
name | 字符串 | 资源类型的机器友好名称,它将用于 CKFinder UI 和服务器连接器之间的通信。 |
label | 字符串 | 资源类型的人类友好名称,它将在 CKFinder UI 中用作“根文件夹”名称。 |
backend | 字符串 | 指向该资源类型应该指向的 后端 的名称。 |
directory 可选 | 字符串 | 资源类型应该指向的确切后端子文件夹的路径。 |
maxSize 可选 | 字符串 | 以字节为单位定义的上传图像的最大大小。还支持简写符号:G、M、K(不区分大小写)。1M 等于 1048576 字节(1 兆字节),1K 等于 1024 字节(1 千字节),1G 等于 1 千兆字节。 |
allowedExtensions | 字符串 | 您希望允许使用 CKFinder 上传的文件扩展名。NO_EXT 值可用于没有扩展名的文件。 |
deniedExtensions 可选 | 字符串 | 您不希望使用 CKFinder 上传的文件扩展名。仅当 allowedExtensions 保持为空时才应设置此选项。NO_EXT 值可用于没有扩展名的文件。 |
lazyLoad 可选 | 布尔值 | 如果设置为 true ,则 Init 命令不会检查资源类型是否包含子文件夹。此选项对于远程后端特别有用,因为 Init 命令将更快执行,因此 CKFinder 的启动速度也将更快。建议将其设置为 true 用于远程后端。 |
重要: 建议始终使用 allowedExtensions
设置,而不是 deniedExtensions
。如果您将 allowedExtensions
保持为空并在 deniedExtensions
列表中添加扩展名(例如 pdf
),则设置将允许上传除具有 pdf
扩展名的文件(例如 .php
或 .exe
文件)之外的所有其他文件。
一个简单的资源类型定义,其中 label
设置为 Files
的法语等效项。name
(机器名称)设置为 Files
,可以在诸如 defaultResourceTypes 之类的示例中使用,或在 将 CKFinder 与 CKEditor 集成 时使用。
此简单示例显示了如何动态地本地化资源类型的标签。根据发送到服务器连接器的每个 Ajax 请求中传递的 lang
属性的值来设置资源类型标签。
CKFinder 必须用来检索当前用户的角色的会话变量名称。
在 config.php
中设置 roleSessionVar
后
您可以使用 $_SESSION
在您的应用程序中设置 CKFinder 用户角色,例如,当用户登录时
role
可用于设置 ACL 设置。
为所有用户设置只读权限,但允许具有 administrator
角色的用户完全访问权限
是否在上传图像文件时执行其他检查。
有时,用户可能会尝试上传不是图像文件但看起来像是图像文件的 文件。示例:您有一个名为 document.jpeg
的文本文件,您尝试上传它。您可以通过以下方式将其设置为 true
来启用图像检查功能
使用此配置设置,程序将检查文件的尺寸。如果它们等于零,则该文件被视为无效,并且 CKFinder 将拒绝它。
如果设置为 true
,则会话的写访问权限将在尽可能快的时间内关闭,以避免性能问题(请参阅 避免与 PHP 会话相关的性能问题)。
绝对路径,指向 Web 服务器上用于 CKFinder 的临时文件的可写目录。默认情况下,它指向由 sys_get_temp_dir() 返回的 sys_temp_dir
。
注意: 在某些 IIS 服务器上,系统临时目录可能无法从 PHP 级别访问。使用此选项,您可以配置 CKFinder 使用任何其他可写目录来存储临时文件。
内部缩略图配置。
注意: 更改最小值和最大值将导致 CKFinder 中的滑块范围不同。
配置选项
选项名称 | 类型 | 描述 |
---|---|---|
bmpSupported | 布尔值 | 是否为 .bmp 文件显示缩略图。 |
enabled | 布尔值 | CKFinder 是否应该为图像文件显示真实的缩略图。 |
大小 | 数组 | CKFinder 允许创建的内部缩略图的预定义大小。由于 CKFinder 允许使用滑块在应用程序中更改缩略图的大小,因此默认情况下使用了一些预定义集,以便在用户不需要大图像时使用小型且最高效的大小(150px),当用户更喜欢大图像时使用 500px。 |
是否使用 X-Sendfile
模块发送文件。Mod X-Sendfile(或类似模块)可用于 Apache2、Nginx、Cherokee、Lighttpd。
警告: 启用 xSendfile
选项可能会导致安全问题