上传文件

aki发表于:2016年09月09日 13:57:23更新于:2019年06月28日 13:44:45

Index

上传文件

将文件上传到附件字段的API。

  • 上传的文件的文件Key可用于添加或更新记录等。

  • 一次最多可上传一个文件。

  • 使用获取记录API获取到的文件Key不能用于上传文件。

HTTP 方法

POST

URI

https://(子域名).cybozu.cn/k/v1/file.json

来宾空间内的应用

https://(域名).cybozu.cn/k/guest/(空间ID)/v1/file.json

请求格式

  • 使用multipart/form-data格式发送请求。详情请参照RFC1867、RFC2388。

  • Content-Disposition 内的name指定「file」、filename指定文件名。 
    ※如果是中文文件,使用GBK编码指定内容。

请求的范例

包含请求头部的范例

发送文件内容为【test】的 test.txt 文件时
POST /k/v1/file.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: cnlvX2Z1a3VkYTpjeWJvenU=
Content-Type: multipart/form-data; boundary=---------------------------bee48a285354
Content-Length: 188

-----------------------------bee48a285354
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain

test

-----------------------------bee48a285354--

应答的范例

将返回所上传的文件的文件Key。在使用数据添加、数据更新等API时,文件Key可作为附件字段的值来使用(下文)。

{
    "fileKey": "c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6"
}

所上传的文件和记录的关联

在执行添加或更新API时,获取到的文件Key可作为附件的值来使用,如下。

请求头部(使用更新记录的API时)
PUT /k/v1/record.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
  • 请在Content-Type中指定application/json。如不指定,JSON 无法识别,执行时将报错。

正文(使用更新记录API时)
{
    "app": 7,
    "id": 1,
    "record": {
        "attached_file": {
            "value": [
                {
                    "fileKey": " c15b3870-7505-4ab6-9d8d-b9bdbc74f5d6"
                }
            ]
        }
    }
}

限制事项

  • 上传后的文件如果没有通过添加记录API或更新记录API添加到记录中时,该文件将在3天后删除。

  • 保存在临时保存空间中的文件所占的空间也将算到磁盘使用量中。

其他请参考限制事项 。

相关Tips

JavaScript范例

XMLHttpRequest

var blob = new Blob(["Sample Test File"], {type: "text\/plain"});
var formData = new FormData();
formData.append("__REQUEST_TOKEN__", kintone.getRequestToken());
formData.append("file", blob, "test.txt");

var url = 'https://{subdomain}.cybozu.cn/k/v1/file.json';
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onload = function() {
    if (xhr.status === 200) {
        // success

        console.log(JSON.parse(xhr.responseText));
    } else {
        // error

        console.log(JSON.parse(xhr.responseText));
    }
};
xhr.send(formData);


    注意:贴代码时请注意格式并使用"代码语言",与本文无关的问题请至“讨论社区”提问。
    您需要登录后才可以回复