【问题标题】:Getting error :Cannot find method createFile($Proxy841)出现错误:找不到方法 createFile($Proxy841)
【发布时间】:2012-08-19 10:53:00
【问题描述】:

我实际上正在使用谷歌应用程序脚本,我试图使用一种上传文件的方法,所以我执行了我在网站上找到的这段代码:

  function doGet(e) {

 var app = UiApp.createApplication().setTitle("Upload CSV to Sheet");
 var form = app.createFormPanel().setId('frm').setEncoding('multipart/form-data');
 var formContent = app.createVerticalPanel();
 form.add(formContent);  
 formContent.add(app.createFileUpload().setName('thefile'));
 formContent.add(app.createSubmitButton('Submit'));
 app.add(form);
 return app;
 }

function doPost(e) {      // data returned is a blob for FileUpload widget 
var fileBlob = e.parameter.thefile; 
var doc = DocsList.createFile(fileBlob);  
var app = UiApp.getActiveApplication();           
//Display a confirmation message                           
var label = app.createLabel('file uploaded successfully');
app.add(label);  
 return app;  
  }

首先我收到消息错误 TypeError: 无法从未定义中读取属性“参数”。 (第 15 行) 而不是我用这个改变了这一行:

  var app = UiApp.getActiveApplication();    
   var fileBlob = app.getElementById('thefile');// in the doPost function      

   formContent.add(app.createFileUpload().setId('thefile'));</b>// I remplaced the setName with setId in the doSet function;</br>       


而当我再次执行代码时,我遇到了这个错误: 找不到方法 createFile($Proxy841);

真不知道是什么问题!

谁能帮帮我! 提前致谢。

【问题讨论】:

    标签: gwt google-apps-script google-apps


    【解决方案1】:

    你的第一个版本是正确的,你确定你使用这个版本来运行你的测试吗?您使用的是“开发”版本还是“执行”版本?你不应该做出你在问题第二部分中建议的更改,这不是它的工作原理。

    请参阅下面的屏幕截图:

    【讨论】:

    • 这就是我所做的我创建了一个新项目(脚本作为 Web 应用程序)我保存了项目,然后我运行 doGet 方法:它运行良好,但是当我再次运行doPost 方法我收到此消息错误:TypeError:无法从未定义中读取属性“参数”。 (第 14 行)!再次感谢您的回答!
    • doPost 不能单独调用,它会在按下“提交按钮”时自动调用,这就是它的工作原理;-) 事实上,如果您尝试从脚本调用 doPost,则没有任何你让它做某事的机会,因为'e'确实没有定义! e 是 doGet 函数返回的“元素”。我建议您阅读文档和教程以了解其工作原理(无意冒犯 :-)
    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    相关资源
    最近更新 更多