从 google 表单中检索 url 上传文件
Retrieve url of uploaded file from google form
我找到了一个非常好的 google 脚本用于 google 表单,它允许我在电子表格中检索 google 表单的答案以及 "getEditResponseUrl()" 这将帮助我构建一个可以通过 google 表单修改的数据库。
但是,我正在努力获得 "upload file question" 的 url。用户应该在哪里上传文件的问题是第四个"facture"。
我在电子表格中得到的答案只是“[Ljava.lang.Object;@508c8b8b”,而不是文件。
知道如何使它工作以便我获得用户上传的文件的 url 吗?
谢谢你和亲切的问候
var ss = SpreadsheetApp.openById("spreadsheeturl"); // to be customised
var responseSheet = "Database"; // to be customised
function submitFormFunc(e) {
var items = e.response.getItemResponses();
var responses={};
for(var i = 0; i< items.length; i++) {
responses[items[i].getItem().getTitle()]=items[i].getResponse();
}
var responseRow = [];
responseRow.push(e.response.getTimestamp().toString());
responseRow.push(e.response.getId());
responseRow.push(responses["Challenge"]); // to be customised
responseRow.push(responses["Client"]);
responseRow.push(responses["Date"]);
responseRow.push(responses["Facture"]);
// to be customised
// add as many as needed
responseRow.push(FormApp.getActiveForm().getResponse(e.response.getId()).getEditResponseUrl());
var isNewItem = alreadyExist(ss,e.response.getId());
if(isNewItem<0){
ss.getSheetByName(responseSheet).appendRow(responseRow);
}
else{
ss.getSheetByName(responseSheet).getRange(isNewItem+2, 1, 1, 6).setValues([responseRow]);
}
}
function alreadyExist(ss,id){
var ids = ss.getSheetByName(responseSheet).getRange("B2:B").getValues();
for(var i=0; i< ids.length; i++){
if(ids[i][0]===id){
return(i);
}
}
return(-1);
}
这是来自 Form Notifications add-on 的片段,它将上传的文件 ID 转换为 Google 驱动器 URL,并在多次上传的情况下连接结果。
var urls = answer.toString().split(",").map(function(f) {
return "https://drive.google.com/open?id=" + f;
}).join(", ");
我找到了一个非常好的 google 脚本用于 google 表单,它允许我在电子表格中检索 google 表单的答案以及 "getEditResponseUrl()" 这将帮助我构建一个可以通过 google 表单修改的数据库。
但是,我正在努力获得 "upload file question" 的 url。用户应该在哪里上传文件的问题是第四个"facture"。
我在电子表格中得到的答案只是“[Ljava.lang.Object;@508c8b8b”,而不是文件。
知道如何使它工作以便我获得用户上传的文件的 url 吗?
谢谢你和亲切的问候
var ss = SpreadsheetApp.openById("spreadsheeturl"); // to be customised
var responseSheet = "Database"; // to be customised
function submitFormFunc(e) {
var items = e.response.getItemResponses();
var responses={};
for(var i = 0; i< items.length; i++) {
responses[items[i].getItem().getTitle()]=items[i].getResponse();
}
var responseRow = [];
responseRow.push(e.response.getTimestamp().toString());
responseRow.push(e.response.getId());
responseRow.push(responses["Challenge"]); // to be customised
responseRow.push(responses["Client"]);
responseRow.push(responses["Date"]);
responseRow.push(responses["Facture"]);
// to be customised
// add as many as needed
responseRow.push(FormApp.getActiveForm().getResponse(e.response.getId()).getEditResponseUrl());
var isNewItem = alreadyExist(ss,e.response.getId());
if(isNewItem<0){
ss.getSheetByName(responseSheet).appendRow(responseRow);
}
else{
ss.getSheetByName(responseSheet).getRange(isNewItem+2, 1, 1, 6).setValues([responseRow]);
}
}
function alreadyExist(ss,id){
var ids = ss.getSheetByName(responseSheet).getRange("B2:B").getValues();
for(var i=0; i< ids.length; i++){
if(ids[i][0]===id){
return(i);
}
}
return(-1);
}
这是来自 Form Notifications add-on 的片段,它将上传的文件 ID 转换为 Google 驱动器 URL,并在多次上传的情况下连接结果。
var urls = answer.toString().split(",").map(function(f) {
return "https://drive.google.com/open?id=" + f;
}).join(", ");