Posted at

Google FormのファイルアップロードとGAS

More than 1 year has passed since last update.

アドベントカレンダーが同日2つ入れてしまって焦っている大橋です。

少し前にGoogle Formでファイルアップロードがサポートされましたね!

かなり欲しい欲しいと言われていた機能ですし、この機能が無いがためにGoogle Apps ScriptでUIを作るってのもよくありました。

この機能についてチャント把握していなかったので、触りながら理解をしていきたいと思います。


前提

Google FormのファイルアップロードはG Suite(旧Google Apps for work)でないと使えません。

またファイルアップロードアイテムを追加した場合、必ず同一ドメイン内のユーザしか回答が行なえません。

外部向けのGoogle Formでは現状この機能が使えない点ということに注意してください。


追加の仕方

Google Formの質問追加先メニュー内に「ファイルのアップロード先」というメニューが出てきますのでそれを選択してください。

Kobito.Y0a4f1.png


設定できること


タイトル・説明文

通常の質問と同様にタイトルと説明文が設定できます。

説明文を追加する場合は右下のメニューから「説明」にチェックを入れてください。

Kobito.u1zJST.png


ファイルの最大数・最大ファイルサイズ

ファイルの最大数はアップロード可能なファイルの数です。

最大ファイルサイズは1つファイルあたりの最大ファイルサイズです。

Kobito.DLEaxS.png

ファイルの最大数を1より大きく設定した場合、ファイルをアップロードしても最大数になるまでフォーム側に「ファイルを追加」リンクが表示されます。

Kobito.sNdBlS.png

また最大ファイルサイズを超えるファイルをアップロードしようとした場合は以下のようにエラーが表示されます。

Kobito.o7p0v5.png


許可するファイル形式

許可するファイル形式はアップロードを許可するファイル形式を選択できます。

例えば画像のみにするとアップロード時に画像以外のファイルを選択できなくなります。

Kobito.NHoZDk.png

Kobito.8oLsaL.png


画像

キャプチャを取れなかったのですがタイトルの右側をマウスオーバーすると他の質問同様に画像が添付できます。

Kobito.jieGob.png

画像を添付すると質問内にも画像が表示されるようになります。

Kobito.Gqq8LK.png


アップロード後の挙動


ファイルの保存先

アップロードされたファイルはGoogle Driveに保存されます。

Google Formの編集画面で回答タブを選択すると、アップロードされたファイルが確認できます。

「フォルダを表示」リンクをクリックすればファイルが保存されたGoogle Driveフォルダを表示できます。

Kobito.Qg0aMp.png

今回確認した限りではファイルは「MyDrive/{フォーム名}(File responses)/{質問タイトル}(File Responses)」にアップロードされるようです。

アップロードされたファイル名を若干変更され「{元のファイル名} - {アップロードした人の名前}.{元のファイルの拡張子}」になるようです。

Kobito.6J7uEL.png


GASの挙動

onFormSubmitトリガーを利用して、GAS側でアップロードしたItemReponseオブジェクトの結果を取得した場合、結果はGoogle DriveのファイルID配列として取得されます。

結果については仮にアップロードされるファイルが1つでも、必ず配列になるようです。

Kobito.mrazNt.png

Kobito.pqRpj9.png


まとめ・使い道

使い道はかなり多くあるように思います。

例えば社員全員の顔写真を集めて、AdminAPI経由でアカウントの顔に設定したり、

CSVをアップロードしてもらって、定期レポートを作成したりと、

GASのUIとしての役割をもたせることも可能になると思います。

願わくば外部からのアップロードも許可されるとなお良いのですが、セキュリティ的な部分で難しいのかもしれません。

GASのアドベントカレンダーなのにGASの話が殆どなかったですねスミマセヌ。