レコードに添付したファイルを再利用する際に、Qiitaなどに公開されているソースで動作確認等しておりますが、うまくいきません。
コンソールのログを見る限り、ファイルのDL、ファイルのUPまでは成功しております。
しかし、そのKEYを対象添付ファイルフィールドに格納して保存しても、レコードの詳細画面には、ファイルが表示されません
問題点、解決方法をご教授頂ければと思います。
以下ソース
jQuery.noConflict();
(function ($) {
“use strict”;
constfk=‘xxxxxxxx’; // 動作確認のため、filekeyベタ打ち
kintone.events.on(“app.record.create.submit”, function (e) {
letrecord=e.record;
// ファイルダウンロード & アップロード
returnfileDownload(fk).then(function (resp) {
console.log(resp);
// file upload
returnfileUpload(‘sample.log’, “application/octet-stream”, resp);
}).then(function (resp) {
console.log(resp);
e.record.文字列__1行_.value=resp.fileKey;
e.record.attached_file.value.push({“fileKey”:resp.fileKey});
console.log(e.record.attached_file.value);
returne;
});
});
// File Download
functionfileDownload(fileKey) {
returnnewPromise(function (resolve, reject) {
varurl=kintone.api.url(‘/k/v1/file’, true) +‘?fileKey=’+fileKey;
varxhr=newXMLHttpRequest();
xhr.open(‘GET’, url);
xhr.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xhr.responseType=‘blob’;
xhr.onload=function () {
if (xhr.status===200) {
// successful
resolve(xhr.response);
console.log(‘fileDownload’);
} else {
// fails
reject(Error(‘File download error:’+xhr.statusText));
}
};
xhr.onerror=function () {
reject(Error(‘There was a network error.’));
};
xhr.send();
});
}
// File upload
functionfileUpload(fileName, contentType, data) {
returnnewPromise(function (resolve, reject) {
varblob=newBlob([data], { type:contentType });
varformData=newFormData();
formData.append(“__REQUEST_TOKEN__”, kintone.getRequestToken());
formData.append(“file”, blob, fileName);
varurl=kintone.api.url(‘/k/v1/file’, true);
varxhr=newXMLHttpRequest();
xhr.open(‘POST’, url);
xhr.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xhr.onload=function () {
if (xhr.status===200) {
// successful
varresults=JSON.parse(xhr.response);
console.log(‘fileUpload’);
resolve(results);
} else {
// fails
reject(Error(‘File upload error:’+xhr.statusText));
}
};
xhr.onerror=function () {
reject(Error(‘There was a network error.’));
};
xhr.send(formData);
});
}
})(jQuery);