我使用的脚本与本教程中的脚本完全相同,https://developers.google.com/apps-script/reference/ui/file-upload
然而,尽管使用了语法,我仍然会在语句中定义:
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);
}
答案 0 :(得分:1)
未定义,因为您没有向doPost
传递任何内容。您必须将所需对象传递给doPost
。检查您调用函数的位置以及传递给它的参数(如果有)。即使您将参数传递给该函数,它也会保留未定义的值。确保将正确的对象传递给函数。
答案 1 :(得分:0)
你的脚本应该完美无缺。 e由Google Apps脚本定义,不需要传递任何特定内容包含表单的字段,特别是在这种情况下您上传的文件。
我怀疑你可能会对dev url vs publish url syndrome犯规,你正在执行一个旧的脚本而不是你正在处理的代码。
请确保您的脚本以'dev'结尾,而不是'exec'
https://script.google.com/a/macros/appsscripttesting.com/s/AKfyck...EY7qzA7m6hFCnyKqg/dev
如果您在从/ dev url
运行该错误后仍然收到错误,请告诉我