Google Forms
でファイルアップロード機能を活用した場合に、アップロードされくるファイル名を任意の文字列にする方法をご説明です。
#ファイルアップロードのデフォルトの挙動
今回は以下のように①名字、②名前、③写真というサンプルのフォームを作りました。且つ、滝廉太郎さんという方が写真をアップロードすることを考えます。
デフォルトのまま使うと以下のように{元のファイル名} – {ユーザ名}.{元のファイル拡張子}
という名前になることがわかります。
#Google Script Editorを用いたファイル名変更方法
スクリプトエディタを開いたら、もともと記載されている文章を全て削除して、以下のコードをコピペして保存してください。今回は{名字欄に入力した文字列}_{名前欄に入力した文字列}
をファイル名として設定するという内容にしております。
function myFunction(e) {
var itemResponse;
var fileName;
var photo;
// フォームの回答結果を取得(設問順に配列に格納される)
itemResponses = e.response.getItemResponses();
// 名字_名前の順番で文字列を連結させてファイル名を作成する
itemResponse = itemResponses[0];
fileName = itemResponses[0].getResponse() + '_' + itemResponses<img class="ranking-number" src="https://tagutasu.com/wp-content/themes/jin/img/rank01.png" />.getResponse();
// アップロードされた写真の名前を設定
photo = DriveApp.getFileById(itemResponses<img class="ranking-number" src="https://tagutasu.com/wp-content/themes/jin/img/rank02.png" />.getResponse());
photo.setName(fileName);
}
その後は時計マークのアイコンを開いて、トリガーを設定していきます。
このように「イベントの種類を選択」を、「フォーム送信時」に設定してください。これによって、フォームが送信されたときに、先ほどコピペしたコードを実行するという設定にすることができます。
自身が開発社になるのでその点は問題がないと思いますので、詳細を押して当該のアプリに移動してください。その後、アプリがgoogleドライブにアクセスできるように権限を設定するよう促されるので「許可」をして進めてください。なお、この過程で設定済みのgmailアドレスに、本人確認のセキュリティチェックが入るのでこちらもOKで進めていくようにしてください。
個人情報など重要なデータを取り扱う際には、組織のセキュリティーポリシーを踏まえた上でご判断をお願いいたします。
#アップロードされた画像ファイル名
上記の手順を全て行った上で、Google Formで冒頭の例と同じ入力を行うと、ファイル名が{名字欄に入力した文字列}_{名前欄に入力した文字列}
になっていることが確認でききました。