1

Apps Script GUI Builder 有一些我不明白的地方。我正在尝试进行文件上传,但无法正常工作。基本设置:表单面板、流程面板、文件上传、提交按钮。我没有在鼠标点击上放置任何事件(我知道 doPost 默认会捕获它)。

相关功能:

function appBVFileUpload2() {
   var mydoc = SpreadsheetApp.getActiveSpreadsheet();  
   var app = UiApp.createApplication().setTitle('File Upload');
   app.add(app.loadComponent("ImportationBV")); // load the GUI
   mydoc.show(app); 
}

function doPost(e) {
  // data returned is a blob for FileUpload Form
  var fileBlob = e.parameter.thefile; // thefile is the name of the File Upload Object
  var doc = DocsList.createFile(fileBlob); // Generate the Error <<<
  var app = UiApp.getActiveApplication();
  app.close();
  return app; 
}

所以我在点击提交按钮时总是出错:

遇到错误:发生意外错误

重要说明:错误是由行产生的var doc = DocsList.createFile(fileBlob);。所以我怀疑来自文件上传对象的数据没有正确接收。

有趣的是,谷歌在这里提供的例子对我有用。这意味着如果 GUI 是通过代码而不是通过 GUI 构建器完成的,则上传工作。

我对所有内容进行了三次检查,我真的很困惑,并开始认为通过 GUI Builder 上传文件可能存在错误。有什么帮助吗?

感谢您对此事的任何帮助。

4

1 回答 1

1

当小部件的名称不是应有的名称时,通常会出现此错误,您可以尝试记录 e.parameter 以查看其中的内容...Logger.log(e.parameter); 还要检查小部件的名称中是否没有意外空格...

编辑:根据您的评论,我在这里对其进行了测试,并且可以正常工作。您能否检查一下您是否有相同的设置(组件树、名称...),这是一个屏幕截图。: 在此处输入图像描述

于 2012-06-26T23:03:47.417 回答