いつもお世話になっております。
kintoneのダウンロードの手順についてご相談させてください。
現在、kintoneにアップロードされたファイルをダウンロードする処理を実装したいです。
ファイルキーを取得し吐き出しまではできたのですが、おそらく文字化けが原因でPDFが空白の状態で表示されてしまいます。
お手数ですが解決方法をご教授いただけますと幸いです。
以上、よろしくお願いします。
(function () {
"use strict";
kintone.events.on("app.record.detail.show", function (e) {
let recId = kintone.app.record.getId();
let param = { "app": XXX, "id": recId } //appは仮の値
let record;
let fileKey;
kintone.api(kintone.api.url('/k/v1/record', true), 'GET', param, function (resp) {
record = resp.record;
fileKey = record['添付ファイル'].value[0].fileKey;
let authToken = ''; //実際はBASE64のID/PWをEncodeした値をいれています。
let downloadFileUrl = kintone.api.url('/k/v1/file', true) + '?fileKey=' + fileKey;
return kintone.proxy(downloadFileUrl, 'GET', { "X-Cybozu-Authorization": authToken, "Content-Type": "application/pdf;charset=UTF-8" }, {}).then(function (get_args) {
let blob = new Blob([get_args[0]], { "type": "application/pdf" });
console.log(get_args); //値は取得できているが、[get_args[0]]が文字化け中
let a = document.createElement('a');
a.download = name;
a.target = '_blank';
if (window.navigator.msSaveBlob)
{
window.navigator.msSaveBlob(blob, "TEST.pdf");
} else if (window.URL && window.URL.createObjectURL)
{
// for Firefox
a.href = window.URL.createObjectURL(blob);
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
else if (window.webkitURL && window.webkitURL.createObject)
{
// for Chrome
a.href = window.webkitURL.createObjectURL(blob);
a.click();
}
else
{
// for Safari
window.open('data:' + mimeType + ';base64,' + window.Base64.encode(content), '_blank');
}
});
});
});
})();