CKFinder 命令列表
以下是 CKFinder 3 for Java 所有命令的列表,以及一些示例。
# 通用 URL 参数
名称 | 描述 |
---|---|
command |
要执行的命令名称。 |
type |
资源类型名称。 |
currentFolder |
当前工作文件夹路径。 |
# CopyFiles
将文件从选定的文件夹复制。
# 示例请求
将 Files
资源类型 sub1
目录下的两个文件复制到 Images
资源类型的根 (/
) 目录。
files
参数结构的示例 (JSON 表示法)
request["files"] = [
{
"name": "file1.jpg",
"type": "Files",
"folder": "/sub1/"
"options": ""
},
{
"name": "file2.png",
"type": "Files",
"folder": "/sub1/"
"options": ""
}
]
POST /ckfinder/connector?command=CopyFiles&type=Images¤tFolder=/
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/images/",
"acl": 255
},
"copied": 2
}
# 其他说明
请求应包含一个名为 files
的数组参数,其中包含定义要复制的源文件的元素。每个数组元素应包含以下参数
name
– 文件名。type
– 文件资源类型。folder
– 文件夹。options
– 定义在目标文件夹中已存在同名文件时如何复制文件的参数。
options
参数可以包含以下值
- 默认情况下它是一个空字符串,在这种情况下,如果文件已存在,则适当的错误将被添加到响应中。
overwrite
– 目标文件被覆盖。autorename
– 在这种情况下,复制的文件名会通过在文件名中添加一个数字来修改,例如自动重命名后的file.txt
为file(1).txt
。
# CreateFolder
创建子文件夹。
# 示例请求
在 Files
资源类型的根 (/
) 文件夹中创建 My Folder
文件夹
POST /ckfinder/connector?command=CreateFolder&type=Files¤tFolder=/&newFolderName=My Folder
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/files/",
"acl": 255
},
"newFolder": "My Folder",
"created": 1
}
# DeleteFiles
删除给定的文件。
# 示例请求
从 Files
资源类型的 sub1
目录中删除两个文件。
files
参数结构的示例 (JSON 表示法)
request["files"] = [
{
"name": "file1.jpg",
"type": "Files",
"folder": "/sub1/"
},
{
"name": "file2.png",
"type": "Files",
"folder": "/sub1/"
}
]
POST /ckfinder/connector?command=DeleteFiles&type=Files¤tFolder=/
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/files/",
"acl": 255
},
"deleted": 2
}
# 其他说明
请求应包含一个名为 files
的数组参数,其中包含定义要删除的源文件的元素。每个数组元素应包含以下参数
name
– 文件名。type
– 文件资源类型。folder
– 文件夹。
# DeleteFolder
删除给定的文件夹。
# 示例请求
删除 Files
资源类型的 sub1
目录
POST /ckfinder/connector?command=DeleteFolder&type=Files¤tFolder=/sub1/
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/sub1/",
"url": "/ckfinder/userfiles/files/sub1/",
"acl": 255
},
"deleted": 1
}
# DownloadFile
从服务器下载文件。
# 示例请求
从 Files
资源类型的根 (/
) 目录下载名为 Test.jpg
的文件
GET /ckfinder/connector?command=DownloadFile&type=Files¤tFolder=/&fileName=Test.jpg
# 其他说明
此命令不期望连接器返回文本响应。相反,它必须将文件数据流式传输到客户端。
# FileUpload
将文件上传到给定的文件夹。
# 示例请求
将文件上传到 Files
资源类型的根 (/
) 目录
POST /ckfinder/connector?command=FileUpload&type=Files¤tFolder=/
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/files/",
"acl": 255
},
"fileName": "fileName.jpg",
"uploaded": 1
}
# 其他说明
- 文件数据应编码为
multipart/form-data
。 - 包含上传文件的
POST
参数应命名为upload
。 - 上传的文件名可能包含非 ASCII 字符。
# GetFiles
返回给定文件夹的文件列表。
# 示例请求
获取 Images
资源类型 /Docs/
文件夹中的文件列表
GET /ckfinder/connector?command=GetFiles&type=Images¤tFolder=/Docs/
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/Docs/",
"url": "/ckfinder/userfiles/images/Docs/",
"acl": 255
},
"files": [
{
"name": "image1.png",
"date": "201406080924",
"size": 1
},
{
"name": "測試.png",
"date": "201406080924",
"size": 12
}
]
}
# 其他说明
文件名可能包含非 ASCII 字符,例如上面的示例中使用中文字符。
date
属性对应于最后一次文件修改的时间,格式为 YYYYMMDDHHmm
,其中
YYYY
– 年份 (4 位数字)。MM
– 月份 (两位数,用 0 填充)。DD
– 日 (两位数,用 0 填充)。HH
– 小时 (24 小时制,两位数,用 0 填充)。mm
– 分钟 (两位数,用 0 填充)。
size
属性包含文件大小,以 KB 为单位。
# GetFileUrl
返回指向文件的直接 URL。
# 示例请求
获取存储在 Images
资源类型 /kittens/
文件夹中的名为 longcat.jpg
的文件的直接 URL
GET /ckfinder/connector?command=GetFileUrl&type=Images¤tFolder=/kittens/&fileName=longcat.jpg
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/kittens/",
"url": "/ckfinder/userfiles/images/kittens/",
"acl": 255
},
"url": "/ckfinder/userfiles/images/kittens/longcat.jpg"
}
# 其他说明
此命令返回的 URL 取决于为资源类型定义的后端。在大多数情况下,需要为后端定义一个 baseUrl
才能获取指向文件的有效直接 URL。
# GetFolders
返回给定文件夹的子文件夹列表。
# 示例请求
获取 Images
资源类型 /Docs/
文件夹中的子文件夹
GET /ckfinder/connector?command=GetFolders&type=Images¤tFolder=/Docs/
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/Docs/",
"url": "/ckfinder/userfiles/images/Docs/",
"acl": 255
},
"folders": [
{
"name": "folder1",
"hasChildren": false,
"acl": 255
},
{
"name": "繁體中文字",
"hasChildren": false,
"acl": 255
}
]
}
# 其他说明
文件夹名称可能包含非 ASCII 字符,例如上面的示例中使用中文字符。
# GetResizedImages
返回图像文件调整大小后的版本的列表。
# 示例请求
获取存储在 Images
资源类型 /kittens/
文件夹中的 longcat.jpg
图像的调整大小后的版本
GET /ckfinder/connector?command=GetResizedImages&type=Images¤tFolder=/kittens/&fileName=longcat.jpg
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/kittens/",
"url": "/ckfinder/userfiles/images/kittens/",
"acl": 255
},
"originalSize":"1920x1200",
"resized": {
"small": "longcat__480x300.jpg",
"medium": "longcat__600x375.jpg",
"large": "longcat__800x500.jpg",
"__custom": ["longcat__200x125.jpg", "longcat__300x188.jpg"]
}
}
# 其他说明
图像的调整大小后的版本始终保留原始图像的纵横比。
当图像的调整大小后的版本与 images.sizes
配置选项中定义的任何大小匹配时,它会
追加到响应中的适当键下 (如上面的示例中的 small
、medium
、large
)。所有其他现有的调整大小后的版本都存储在名为 __custom
的键下。
# ImageEdit
执行基本图像修改:裁剪、旋转、调整大小。
# 示例请求
要执行的操作以及所需参数在 actions
数组参数中发送。
actions
参数结构的示例 (JSON 表示法)
request["actions"] = [
{
"action": "rotate",
"angle": 90 // Number of degrees for clockwise rotation.
},
{
"action": "resize",
"width": 300, // Maximum image width.
"height": 300 // Maximum image height.
},
{
"action": "crop",
"x": 0, // X coordinate of the top-left corner of the cropped area.
"y": 0, // Y coordinate of the top-left corner of the cropped area.
"width": 225, // The cropped area width.
"height": 150 // The cropped area height.
}
]
根据是否提供了 newFileName
参数
- 如果提供,则创建一个具有给定名称的新文件。
- 如果省略,则替换当前文件。
POST /ckfinder/connector?command=ImageEdit&type=Images¤tFolder=/kittens/&fileName=longcat.jpg
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/kittens/",
"url": "/ckfinder/userfiles/images/kittens/",
"acl": 255
},
"saved": 1
}
# ImageInfo
返回有关图像文件尺寸的信息。
# 示例请求
获取存储在 Images
资源类型 /kittens/
文件夹中的 longcat.jpg
图像的尺寸。
GET /ckfinder/connector?command=ImageInfo&type=Images¤tFolder=/kittens/&fileName=longcat.jpg
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/kittens/",
"url": "/ckfinder/userfiles/images/kittens/",
"acl": 255
},
"width": 1440,
"height": 900
}
# ImagePreview
提供图像文件的调整大小后的版本。
# 示例请求
创建存储在 Images
资源类型 /kittens/
文件夹中的 longcat.jpg
图像的调整大小后的版本。
将其调整大小为 450x450
GET /ckfinder/connector?command=ImagePreview&type=Images¤tFolder=/kittens/&fileName=longcat.jpg&size=450x450
# 示例响应
此命令不期望连接器返回文本响应。相反,它必须将图像数据流式传输到客户端。
# 其他说明
- 返回的图像始终保留原始图像的纵横比 (使用为边框计算的较高的缩放系数)。
- 当请求的大小与其纵横比不匹配原始图像的纵横比时,会对请求的大小进行校正。
- 使用此命令生成的图像不会存储在服务器端。
# ImageResize
创建图像文件的调整大小后的版本。
# 示例请求
创建存储在 Images
资源类型 /kittens/
文件夹中的 longcat.jpg
图像的调整大小后的版本。
将其调整大小为 450x450
POST /ckfinder/connector?command=ImageResize&type=Images¤tFolder=/kittens/&fileName=longcat.jpg&size=450x450
# 示例响应
{
"resourceType": "Images",
"currentFolder": {
"path": "/kittens/",
"url": "/ckfinder/userfiles/images/kittens/",
"acl": 255
},
"url":"/ckfinder/userfiles/images/kittens/__thumbs/longcat.jpg/longcat__450x281.jpg" // Direct URL to a file
}
# 附加说明
- 返回的图像始终保留原始图像的纵横比(使用针对边框计算的较低缩放系数)。
- 当请求的大小与其纵横比不匹配原始图像的纵横比时,会对请求的大小进行校正。
- 使用此命令生成的图像存储在当前文件文件夹中创建的名为
__thumbs
的特殊文件夹中。
# Init
这是 CKFinder 发出的第一个命令。它返回连接器的一般设置和所有已配置的资源类型。
# 示例请求
GET /ckfinder/connector?command=Init
# 示例响应
{
"enabled": true,
"s": "",
"c": "",
"thumbs": ["150x150", "300x300", "500x500"],
"images":{"max":"500x400","sizes":{"small":"480x320","medium":"600x480","large":"800x600"}},
"uploadMaxSize": "425167",
"uploadCheckImages": true,
"resourceTypes": [
{
"name": "Files",
"url": "/ckfinder/userfiles/files",
"allowedExtensions": "7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,zip",
"deniedExtensions": "",
"hash": "8b787e3ea25b5079",
"hasChildren": false,
"acl": 1023,
"maxSize": 32768
},
{
"name": "Images",
"url": "/ckfinder/userfiles/images",
"allowedExtensions": "bmp,gif,jpeg,jpg,png",
"deniedExtensions": "",
"hash": "b8de0a3f3cb3cd1f",
"hasChildren": false,
"acl": 1023,
"maxSize": 65536
}
]
}
# MoveFiles
将文件从选定的文件夹中移动。
# 示例请求
将两个文件从 Files
资源类型的 sub1
目录移动到 Images
资源类型的根 (/
) 目录。
files
参数结构的示例 (JSON 表示法)
request["files"] = [
{
"name": "file1.jpg",
"type": "Files",
"folder": "/sub1/"
"options": ""
},
{
"name": "file2.png",
"type": "Files",
"folder": "/sub1/"
"options": ""
}
]
POST /ckfinder/connector?command=MoveFiles&type=Files¤tFolder=/
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/files/",
"acl": 255
},
"moved": 2
}
# 附加说明
请求应包含一个名为 files
的数组参数,其中包含定义要移动的源文件的元素。每个数组元素应包含以下参数
name
– 文件名。type
– 文件资源类型。folder
– 文件夹。options
– 定义当目标文件夹中已存在同名文件时应如何移动文件的参数。
options
参数可以包含以下值
- 默认情况下它是一个空字符串,在这种情况下,当文件已存在时,适当的错误将被添加到响应中。
overwrite
– 目标文件被覆盖。autorename
– 在这种情况下,移动文件的名称将通过在文件名中添加一个数字来更改,例如,file.txt
在自动重命名后变为file(1).txt
。
# Operation
跟踪耗时连接器命令中操作的进度。
# 示例请求
可以通过传递一个名为 operationId
的附加参数来为耗时命令启动进度跟踪。
/ckfinder/connector?command=RenameFolder&type=Files¤tFolder=/foo/&newFolderName=bar&operationId=i52q7a7db83rz3n6
operationId
是一个唯一的操作标识符,应与以下正则表达式匹配:^[a-z0-9]{16}
。
然后可以使用对 Operation
命令的请求定期检查操作的状态。
/ckfinder/connector?command=Operation&operationId=i52q7a7db83rz3n6
# 附加说明
并非所有命令都支持操作跟踪,并且此功能可能取决于为后端定义的存储类型。
此命令可以使用以下可选参数
abort
– 如果此布尔参数存在,则耗时操作将立即中止。
# Proxy
将文件提供给浏览器,而不强制下载。此命令在您想要在网页上使用无法直接访问的文件时非常有用。这些可能是存储在没有定义 baseUrl
的后端上的文件(如私人 FTP 服务器),或者不在 Web 服务器根文件夹中的文件。如果在后端配置中设置了 useProxyCommand
标志,则 CKFinder 生成的所有链接都将指向 Proxy
命令。
注意:如果您决定使用此选项,则 CKFinder 生成的所有链接都将指向 Proxy
命令,并且将依赖 CKFinder 连接器才能正常工作。
# 示例请求
GET /ckfinder/connector?command=Proxy&type=Files¤tFolder=/&fileName=foo.jpg
# 示例响应
此命令不期望连接器返回文本响应。相反,它必须将文件数据流式传输到客户端。
# 附加说明
此命令可以使用以下可选参数
cache
– 定义缓存生存时间(以秒为单位)的整数值(这对应于Expires
和Cache-Control
响应标头)。请参阅cache
配置选项。thumbnail
– 如果应提供图像的调整大小版本,则为公共缩略图文件的名称。
# QuickUpload
将文件上传到给定文件夹。此命令与 FileUpload 非常相似,用于处理来自 CKEditor 图像或链接对话框的上传。
# 示例请求
此命令接受一个名为 responseType
的额外 URL 参数,该参数定义返回响应的格式。
将文件上传到 Files
资源类型的根 (/
) 目录
POST /ckfinder/connector?command=QuickUpload&type=Files¤tFolder=/
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/files/",
"acl": 255
},
"fileName": "fileName.jpg",
"uploaded": 1
}
# 附加说明
- 文件数据应编码为
multipart/form-data
。 - 包含上传文件的
POST
参数应命名为upload
。 - 上传的文件名可能包含非 ASCII 字符。
# RenameFile
重命名文件。
# 示例请求
将 Files
资源类型的 sub1
目录中的文件 foo.jpg
重命名为 bar.jpg
POST /ckfinder/connector?command=RenameFile&type=Files¤tFolder=/sub1/&fileName=foo.jpg&newFileName=bar.jpg
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/sub1/",
"url": "/ckfinder/userfiles/files/sub1/",
"acl": 255
},
"name": "foo.jpg",
"newName":"bar.jpg",
"renamed": 1
}
# RenameFolder
重命名文件夹。
# 示例请求
将 Files
资源类型中的 sub1
文件夹重命名为 sub1_renamed
POST /ckfinder/connector?command=RenameFolder&type=Files¤tFolder=/sub1/&newFolderName=sub1_renamed
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/sub1/",
"url": "/ckfinder/userfiles/files/sub1/",
"acl": 255
},
"newName": "sub1_renamed",
"newPath": "/sub1_renamed/",
"renamed": 1
}
# SaveImage
将 Base64 编码的 PNG 图像保存到文件。
# 示例请求
将 content
参数中发送的 Base64 编码图像保存为 Files
资源类型根 (/
) 目录中的 Test.jpg
文件
POST /ckfinder/connector?command=SaveImage&type=Files¤tFolder=/&fileName=Test.jpg
# 示例响应
{
"resourceType": "Files",
"currentFolder": {
"path": "/",
"url": "/ckfinder/userfiles/files/",
"acl": 255
},
"saved": 1,
"date": "201406080924",
"size": 1
}
# Thumbnail
下载图像文件的缩略图。
# 示例请求
下载 Files
资源类型根 (/
) 目录中名为 Test.jpg
的文件的缩略图
GET /ckfinder/connector?command=Thumbnail&type=Files¤tFolder=/&fileName=Test.jpg&size=150x150
# 附加说明
size
参数可用于控制返回的缩略图图像的大小。
默认情况下,CKFinder 3 for Java 连接器支持以下缩略图大小
- 150x150
- 300x300
- 500x500
默认大小可以在主配置文件中覆盖。