我想创建一个数据收集表单,其中包含一个图像上传字段。我尝试了Google表单,它本身不支持文件上传,但我找到了这个示例:Form and file upload with htmlService and app script not working
我设法使用图片上传进行配置,但是,原生Google表单在电子表格回复中确实有一个时间戳列。
我试过了:
var timestamp = theForm.getTimestamp();
但是没有用......
如何获取响应时间戳?
代码摘录:
function processForm(theForm) {
var fileBlob = theForm.myFile;
var folder = DriveApp.getFolderById(folderId);
var doc = folder.createFile(fileBlob);
// Fill in response template
var template = HtmlService.createTemplateFromFile('Thanks.html');
var name = template.name = theForm.name;
var email = template.email = theForm.email;
var timestamp = template.timestamp = theForm.getTimestamp();
// Record submission in spreadsheet
var sheet = SpreadsheetApp.openById(submissionSSKey).getSheets()[0];
var lastRow = sheet.getLastRow();
var targetRange = sheet.getRange(lastRow+1, 1, 1, 5).setValues([[timestamp,name,department,message,email,fileUrl]]);
// Return HTML text for display in page.
return template.evaluate().getContent();
}
答案 0 :(得分:4)
HTML表单在提交时不会自动将任何时间戳传递给服务器,就像Google Forms一样。您必须自己生成该时间戳。 new Date()
会做你想做的事:
var timestamp = template.timestamp = new Date();
如果您需要将此日期对象输出到页面中的屏幕,则需要通过格式化将其设置为人类可读。您可以使用Utilities.formatDate() method执行此操作。