添付ファイルのコピー

レコードに添付したファイルを再利用する際に、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);

 

mharum さん

フィールドの値を書き換える」の説明にありますが、書き換えできないフィールドに添付ファイルがあります。

添付ファイルは、追加編集画面上では操作できない項目になっています。

少し面倒ですが、app.record.create.submit.success イベント処理で、

rest api を使って、添付ファイルを変更してください。

rex0220さん

 

ご指導ありがとうございます。

apiを利用し、無事アップロードできました。

 

追記

いつもQiitaの記事を拝見しております。

すばらしい情報発信ありがとうございます。