0

我使用的脚本与此处教程中的脚本完全相同,https://developers.google.com/apps-script/reference/ui/file-upload

然而,尽管使用了我不断得到的语法,但 e 在语句中是未定义的:

var fileBlob = e.parameter.dsrFile;

我认为这意味着我的函数 doPost(e) 可能在某种程度上是错误的。下面是我的整个脚本。

// Create Menu to Locate .CSV
function doGet(e) {
  var app = UiApp.createApplication().setTitle("Upload CSV");
  var formContent = app.createVerticalPanel();
  formContent.add(app.createFileUpload().setName("dsrFile"));
  formContent.add(app.createSubmitButton("Start Upload"));
  var form = app.createFormPanel();
  form.add(formContent);
  app.add(form);
  return app;

}

// Upload .CSV file
function doPost(e)
{
   // data returned is a blob for FileUpload widget
   var fileBlob = e.parameter.dsrFile;
   var doc = DocsList.createFile(fileBlob);
 }
4

2 回答 2

1

e 未定义,因为您没有将任何内容传递给doPost. 您必须将所需的对象传递给doPost. 检查调用函数的位置以及传递给它的参数(如果有)。即使您将参数传递给该函数,它也包含未定义的值。确保您将正确的对象传递给您的函数。

于 2013-09-15T01:39:04.433 回答
0

您的脚本应该可以完美运行。e 由 Google Apps 脚本定义,不需要传递任何内容,特别是包含表单的字段,特别是在这种情况下是您上传的文件。

我怀疑您可能对开发 url 与发布 url 综合症感到犯规,您正在执行旧脚本而不是您当前正在处理的代码。

确保脚本以“dev”而不是“exec”结尾

https://script.google.com/a/macros/appsscripttesting.com/s/AKfyck...EY7qzA7m6hFCnyKqg/dev

如果您从 /dev url 运行后仍然收到错误,请告诉我

于 2013-09-15T02:25:46.690 回答