Contribute to this guideReport an issue

guideCKFinder 命令列表

以下是 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&currentFolder=/

# 示例响应

{
    "resourceType": "Files",
    "currentFolder": {
        "path": "/",
        "url": "/ckfinder/userfiles/images/",
        "acl": 255
    },
    "copied": 2
}

# 其他说明

请求应包含一个名为 files 的数组参数,其中包含定义要复制的源文件的元素。每个数组元素应包含以下参数

  • name – 文件名。
  • type – 文件资源类型。
  • folder – 文件夹。
  • options – 定义在目标文件夹中已存在同名文件时如何复制文件的参数。

options 参数可以包含以下值

  • 默认情况下它是一个空字符串,在这种情况下,如果文件已存在,则适当的错误将被添加到响应中。
  • overwrite – 目标文件被覆盖。
  • autorename – 在这种情况下,复制的文件名会通过在文件名中添加一个数字来修改,例如自动重命名后的 file.txtfile(1).txt

# CreateFolder

创建子文件夹。

# 示例请求

Files 资源类型的根 (/) 文件夹中创建 My Folder 文件夹

POST /ckfinder/connector?command=CreateFolder&type=Files&currentFolder=/&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&currentFolder=/

# 示例响应

{
    "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&currentFolder=/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&currentFolder=/&fileName=Test.jpg

# 其他说明

此命令不期望连接器返回文本响应。相反,它必须将文件数据流式传输到客户端。

# FileUpload

将文件上传到给定的文件夹。

# 示例请求

将文件上传到 Files 资源类型的根 (/) 目录

POST /ckfinder/connector?command=FileUpload&type=Files&currentFolder=/

# 示例响应

{
    "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&currentFolder=/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&currentFolder=/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&currentFolder=/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&currentFolder=/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 配置选项中定义的任何大小匹配时,它会
追加到响应中的适当键下 (如上面的示例中的 smallmediumlarge)。所有其他现有的调整大小后的版本都存储在名为 __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&currentFolder=/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&currentFolder=/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&currentFolder=/kittens/&fileName=longcat.jpg&size=450x450

# 示例响应

此命令不期望连接器返回文本响应。相反,它必须将图像数据流式传输到客户端。

# 其他说明

  • 返回的图像始终保留原始图像的纵横比 (使用为边框计算的较高的缩放系数)。
  • 当请求的大小与其纵横比不匹配原始图像的纵横比时,会对请求的大小进行校正。
  • 使用此命令生成的图像不会存储在服务器端。

# ImageResize

创建图像文件的调整大小后的版本。

# 示例请求

创建存储在 Images 资源类型 /kittens/ 文件夹中的 longcat.jpg 图像的调整大小后的版本。
将其调整大小为 450x450

POST /ckfinder/connector?command=ImageResize&type=Images&currentFolder=/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&currentFolder=/

# 示例响应

{
    "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&currentFolder=/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&currentFolder=/&fileName=foo.jpg

# 示例响应

此命令不期望连接器返回文本响应。相反,它必须将文件数据流式传输到客户端。

# 附加说明

此命令可以使用以下可选参数

  • cache – 定义缓存生存时间(以秒为单位)的整数值(这对应于 ExpiresCache-Control 响应标头)。请参阅 cache 配置选项。
  • thumbnail – 如果应提供图像的调整大小版本,则为公共缩略图文件的名称。

# QuickUpload

将文件上传到给定文件夹。此命令与 FileUpload 非常相似,用于处理来自 CKEditor 图像或链接对话框的上传。

# 示例请求

此命令接受一个名为 responseType 的额外 URL 参数,该参数定义返回响应的格式。

将文件上传到 Files 资源类型的根 (/) 目录

POST /ckfinder/connector?command=QuickUpload&type=Files&currentFolder=/

# 示例响应

{
    "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&currentFolder=/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&currentFolder=/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&currentFolder=/&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&currentFolder=/&fileName=Test.jpg&size=150x150

# 附加说明

size 参数可用于控制返回的缩略图图像的大小。

默认情况下,CKFinder 3 for Java 连接器支持以下缩略图大小

  • 150x150
  • 300x300
  • 500x500

默认大小可以在主配置文件中覆盖。