お世話になります。
以下URLを参考にし、javascriptでのファイルアップロードをしたいと考えております。
最終目標としては、Aアプリのレコード詳細画面にボタンを作成し、そのボタンを押すとBアプリに登録されている添付ファイルを
Aアプリのレコードに登録するといった動作を目指しており、
その前段階として上記URLを参照し、テストファイルを作成し、Aアプリに登録するコードを書いてみたのですが、
ボタンを押しても何の反応もありませんでした。
==================================================================================-
(function() {
“use strict”;
//レコードの詳細画面で適用する
var events = [‘app.record.detail.show’,
]
kintone.events.on(events, function(event) {
// 特定のスペースフィールドにボタンを設置
// ボタン
var mySpaceFieldButton = document.createElement(‘button’);
mySpaceFieldButton.id = ‘fileup’;
mySpaceFieldButton.innerHTML = ‘添付する’;
// ボタンクリック時の処理
mySpaceFieldButton.onclick = function() {
//textファイルを作成
var blob = new Blob([“テストファイルです”], {type:“text/plain”});
//FormDataにファイルを格納
var formData = new FormData();
formData.append(“__REQUEST_TOKEN__”, kintone.getRequestToken());
formData.append(“file”, blob , “test.txt”);
//httpRequestの送信
xmlHttp = new XMLHttpRequest();
xmlHttp.open(“POST”, encodeURI(‘/k/v1/file.json’), false);
xmlHttp.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xmlHttp.responseType = ‘multipart/form-data’;
xmlHttp.send(formData);
var key = JSON.parse(xmlHttp.responseText).fileKey;
//既存のレコードにファイルを追加
var json = {
app:kintone.app.getId(),
id:kintone.app.record.getId(),
record:{
file:{
value:[
{fileKey:key}
]
}
}
};
kintone.api(‘/k/v1/record’, ‘PUT’, json);
}
//ボタンを設置
kintone.app.record.getSpaceElement(‘fileup’).appendChild(mySpaceFieldButton);
});
})();
==================================================================================-
登録までの流れとしては、
①テストファイルを作成
②POSTでサーバーにテストファイルを登録し、ファイルキーを取得
③取得したファイルキーをPUTで指定のレコードに登録
だと思うのですが、上記コードのどこが間違っているのでしょうか。
大変初歩的なご質問で申し訳ありませんが、
ご指摘願います。