ファイルアップロードで必須となる 3 つの手順
はじめに
今回は JavaScript を使った kintone のレコードにファイルをアップロードする方法を説明します。
JavaScript からのアップロードができたら、A のアプリの添付ファイルをボタンひとつで B のアプリに登録などアプリ間の連携に使えそうですね。
ちなみに、ファイルアップロード API は、
kintone REST API リクエストを送信する に対応していません。
そのため、今回は XMLHttpRequest と CSRF トークンを使ってファイルのアップロードを実現したいと思います。
アップロードしたファイルは添付ファイルとして認識されるため、あらかじめアプリには添付ファイルフィールドを設定しておく必要があります。
実装の手順と流れ
- ファイルを FormData 型に設定する。
- ファイルをアップロードしてその
fileKey
を取得する。 - 取得した
fileKey
とレコードを関連付ける。
アップロードファイルを FormData 型で準備する
前段階の準備として HttpRequest で送信するために、ファイルを FormData 型に格納します。
そのため、まずは Blob 型で作成し、その後 FormData 型に設定します。
FormData 型でテキストファイルを作成するコードは次のとおりです。
|
|
ファイルをアップロードして fileKey
を取得する
ファイルをアップローする API を使って、ファイルをサーバーにアップロードし、そのレスポンスの fileKey
を受け取ります。
ファイルアップロード API は
kintone REST API リクエストを送信する に対応していないため、下記サンプルコードでは XMLHttpRequest を利用しています。
アップロードする際は前述の FormData 型のデータを HttpRequest に設定して送信します。
|
|
API のレスポンスは以下の JSON 形式で返却されます。
|
|
この fileKey
は
ファイルをダウンロードする API では使用できません。
アップロードしたファイルとレコードの関連付け
先ほど取得した fileKey
とレコードを関連付けします。
関連付けることによりレコードに添付ファイルとして設定されます。
|
|
以上でファイルアップロードは完了です。
この Tips は、2014 年 4 月版 kintone で動作を確認しています。