ファイルダウンロード

フォローする

Index

ファイルダウンロード

添付ファイルをダウンロードする API です。

HTTP メソッド

GET

URI

https://(サブドメイン名).cybozu.com/k/v1/file.json

ゲストスペース内のアプリの場合

https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/file.json 

リクエストパラメータ

レコードの取得 API で取得したファイルキーを送信することで、ダウンロードするファイルを指定します。

  • ファイルのアップロード時にレスポンスで返るファイルキーとは異なるため注意してください。
パラメータ名 指定する値 必須 説明
fileKey 文字列 必須 レコードの取得 API 実行時に、レスポンスデータの添付ファイルフィールドにセットされた値です。

リクエストの例

パラメータを HTTP のクエリ文字列で送信する場合

「fileKey」パラメータを、HTTP のクエリ文字列として送信します。

HTTP のクエリ文字列
 fileKey=201201e271307126747563577E9431C85B3B26D4AFB1509193
リクエストヘッダを含んだ例
 GET /k/v1/file.json?fileKey=201201e271307126747563577E9431C85B3B26D4AFB1509193 HTTP/1.1
Host: example.cybozu.com: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.com:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json
Content-Length: 73
  • Content-Type に application/json を指定して下さい。 指定しない場合は JSON が解釈できないため、実行時エラーとなります。
ボディ

レスポンス

Content-Type にアップロードされたファイルの MIME タイプが入り、レスポンスボディにファイルの内容がセットされます。

ダウンロードしたいファイルのファイルキー取得方法

レコードの取得 API で目的の添付ファイルフィールドをレスポンスに含めるリクエストを送信すると、以下の例のような形式でレスポンスが返り、ファイルキーを取得することができます。

関連Tips

JavaScriptサンプル

XMLHttpRequest

コメント

Avatar
yanbingms

function downloadEnclosedFile(id) {
var filekey;
query = 'id=' + id;

respForFile = request(app_id, query);
filekey = respForFile.records[id - 1]['pdfdata']['value'][0].fileKey;
console.log("File Key: " + filekey);

//手順1で取得したfileKeyをurlに設定します。
var url = 'https://{domain}.cybozu.com/k/v1/file.json?fileKey=' + filekey;
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.responseType = 'blob';
xhr.onreadystatechange = function(event) {
if ((xhr.readyState == 4) && (xhr.status == 200)) {
//ファイルがレスポンスとして返却されます
console.log("The file retrieved success.");
}
};
xhr.send();

//Blobオブジェクトにファイルを格納
var blob = new Blob([xhr.response], { type: 'application/pdf' });
var url = (window.URL || window.webkitURL);
var blobUrl = url.createObjectURL(blob);
console.log(blobUrl);
var linkFileName = "名刺C.pdf";

if (window.navigator.msSaveBlob) {
console.log("Save blob executed!");
window.open(blobUrl);
window.navigator.msSaveBlob(blob, linkFileName);
} else {
console.log("Else executed!");
window.open(blobUrl);
var e = document.createEvent('MouseEvents');
e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var a = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
a.href = blobUrl;
a.download = linkFileName;
a.dispatchEvent(e);
}
}

すみませんが、このソースコードでダウンロードしたPDFファイルが開けないです。
ご指摘いただけませんか?

ログインしてコメントを残してください。
Powered by Zendesk