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();