下载文件

aki发表于:2016年09月08日 17:20:19更新于:2020年11月17日 15:20:47

Index

下载文件

下载附件的 API 。

※下载文件 API不支持使用kintone.api() 发送 REST API 请求

HTTP 方法

GET

URI

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

来宾空间

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

必要的访问权限

  • 应用的记录查看权限

  • 要下载的附件所在的记录的查看权限

  • 要下载的附件所在的字段的查看权限

※ 要获取文件key,需要获取记录时所需的访问权限。

请求参数

使用获取记录的API 获取到的文件的Key可用于指定要下载的文件。

  • 请注意,该Key与上传文件时返回的文件Key不同。

参数名要指定的值必须说明
fileKey字符串必须执行获取记录 API时返回的应答数据的附件字段中,可找到此参数。

请求的范例

使用HTTP的查询字符串发送参数时

【fileKey】参数作为HTTP 的查询字符串发送。

HTTP 的查询字符串
 fileKey=201201e271307126747563577E9431C85B3B26D4AFB1509193
包含请求头部的范例
 GET /k/v1/file.json?fileKey=201201e271307126747563577E9431C85B3B26D4AFB1509193 HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
  • Content-Type头部不需要。

使用JSON数据发送参数时(在HTTP 请求的请求正文中插入 JSON数据)

请求正文的 JSON 数据如下。

请求头部
 GET /k/v1/file.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
Content-Length: 73
  • 请在Content-Type中指定application/json。如不指定,JSON 无法识别,执行时将报错。

正文
{
    "fileKey": "201201e271307126747563577E9431C85B3B26D4AFB1509193"
}

应答

Content-Type中插入已上传的文件的 MIME 类型,并在应答正文中插入文件的内容。

要下载的文件的文件Key的获取方法

使用获取记录 API发送请求,要求应答中包含附件文件字段, 则可返回类似以下格式的应答,从而获取到文件Key。

{
    "record": {
        "updated_time": {
            "type": "UPDATED_TIME",
            "value": "2012-02-06T11:59:06Z"
        },
        "attached_file": {
            "type": "FILE",
            "value": [
                {
                    "contentType": "text/plain",
                    "fileKey": "201202061155587E339F9067544F1A92C743460E3D12B3297",
                    "name": "17to20_VerupLog (1).txt",
                    "size": "23175"
                },
                {
                    "contentType": "text/plain",
                    "fileKey": "201202061155583C763E30196F419E83E91D2E4A03746C273",
                    "name": "17to20_VerupLog.txt",
                    "size": "23175"
                }
            ]
        }
    }
}

相关Tips

JavaScript范例

XMLHttpRequest

var fileKey = kintone.app.record.get().record.attached_file.value[0].fileKey;
var url = 'https://{subdomain}.cybozu.cn/k/v1/file.json?fileKey=' + fileKey;
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.responseType = 'blob';
xhr.onload = function() {
    if (xhr.status === 200) {
        // success
        var blob = new Blob([xhr.response]);
        var url = window.URL || window.webkitURL;
        var blobUrl = url.createObjectURL(blob);
        console.log(blobUrl);
    } else {
        // error
        console.log(xhr.responseText);
    }
};
xhr.send();