GUI Builder:文件上载,提交按钮和DoPost问题

时间:2012-06-26 22:53:19

标签: google-apps-script

Apps Script GUI Builder有些我不理解的东西。 我想要一个文件上传,我不能让它工作。 基本设置:表单面板,流程面板,文件上传,提交按钮。 我没有在On Mouse Click上放置任何事件(我知道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);生成。所以我怀疑文件上传对象的数据是否未正确接收。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

编辑:跟着你的评论,我在这里测试了它的确有效。你能否检查一下你是否有相同的设置(组件树,名称......),这是一个屏幕上限。 : enter image description here