【问题标题】:Override Google Forms Naming Format覆盖 Google 表单命名格式
【发布时间】:2019-06-17 09:58:16
【问题描述】:

Google 表单文件上传功能将上传的文件重命名为以下格式:(原始文件名 - 上传者名称)。我需要删除上传者的名字。

我已经尝试过这个线程中的代码。 Prevent Renaming of Google Forms File Upload

function changenametoid() {

var form = FormApp.openById('');
var formResponses = form.getResponses();
var numResponses = formResponses.length;  
var lastResponse = formResponses[numResponses - 1];
var lastResponseItem = lastResponse.getItemResponses();      
var submittedID = lastResponseItem[0].getResponse();
var file = DriveApp.getFileById(submittedID);
var oldFileName = file.getName();
var indexOldFileName = oldFileName.indexOf("-");
var newFileName = submittedID;
var indexOldFileExt = oldFileName.lastIndexOf(".");
var newFileExt = oldFileName.slice(indexOldFileExt);
var modName = newFileName + newFileExt;
file.setName("modName");
}

但我收到此错误:

找不到具有给定 ID 的项目,或者您无权访问它。 at changenametoid(代码:9)

这里是调试日志:

click here

submittedID 似乎不是文件名,而是从 Document Number 获取输入,在上图的情况下为 40。

我的表格中只有三个问题,即文件编号、标题和文件上传。

【问题讨论】:

    标签: javascript google-apps-script google-forms


    【解决方案1】:
    • 您要重命名上传到表单创建的文件夹的文件的文件名。

    如果我的理解是正确的,那么这个修改呢?从您的问题来看,该表单似乎有以下 3 项。

    我的表格中只有三个问题,即文件编号、标题和文件上传。

    如果项目的顺序是“文件编号”、“标题”和“文件上传”,那么这个修改怎么样?请认为这只是几个答案之一。

    修改后的脚本:模式 1

    发件人:

    var submittedID = lastResponseItem[0].getResponse();
    

    收件人:

    var submittedID = lastResponseItem[2].getResponse()[0]; // or lastResponseItem[2].getResponse().toString()
    
    • 在本次修改中,假设项目的顺序是“文件编号”、“标题”和“文件上传”。

    修改后的脚本:模式 2

    发件人:

    var submittedID = lastResponseItem[0].getResponse();
    var file = DriveApp.getFileById(submittedID);
    var oldFileName = file.getName();
    var indexOldFileName = oldFileName.indexOf("-");
    var newFileName = submittedID;
    var indexOldFileExt = oldFileName.lastIndexOf(".");
    var newFileExt = oldFileName.slice(indexOldFileExt);
    var modName = newFileName + newFileExt;
    file.setName("modName");
    

    收件人:

    var submittedID = "";
    for (var i = 0; i < lastResponseItem.length; i++) {
      var type = lastResponseItem[i].getItem().getType();
      if (type == "FILE_UPLOAD") {
        submittedID = lastResponseItem[i].getResponse()[0];
        break;
      }
    }
    if (submittedID != "") {
      var file = DriveApp.getFileById(submittedID);
      var oldFileName = file.getName();
      var indexOldFileName = oldFileName.indexOf("-");
      var newFileName = submittedID;
      var indexOldFileExt = oldFileName.lastIndexOf(".");
      var newFileExt = oldFileName.slice(indexOldFileExt);
      var modName = newFileName + newFileExt;
      file.setName("modName");
    }
    
    • 在本次修改中,假设项目包括一个“FILE_UPLOAD”项目。

    参考资料:

    如果我误解了您的问题,我深表歉意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多