Javascript 使用Google Apps脚本将文本文件上载到Google Drive

Javascript 使用Google Apps脚本将文本文件上载到Google Drive,javascript,upload,google-apps-script,blob,text-files,Javascript,Upload,Google Apps Script,Blob,Text Files,看起来这应该容易些。但无可否认,我不理解斑点 function doGet(e) { var app = UiApp.createApplication(); var panel = app.createVerticalPanel().setId('panel'); var fileUpload = app.createFileUpload().setName('theFile').setId('theFile'); var handler = app.createServe

看起来这应该容易些。但无可否认,我不理解斑点

function doGet(e) { 
  var app = UiApp.createApplication(); 
  var panel = app.createVerticalPanel().setId('panel');
  var fileUpload = app.createFileUpload().setName('theFile').setId('theFile');
  var handler = app.createServerChangeHandler('uploadfile');
  handler.addCallbackElement(panel);
  fileUpload.addChangeHandler(handler);
  panel.add(fileUpload);
  app.add(panel);
  return app;
} 

function uploadfile(e) 
{ 
// data returned which can be used to create a blob
// assuming mime-type to be a text file in this example
  var fileBlob = Utilities.newBlob(e.parameter.thefile, "text/plain","file.txt" );

    // Create a new file
    var doc = DocumentApp.create('Uploaded Text File');

    doc.appendParagraph(fileBlob.getDataAsString());

  // Save and close the document
  doc.saveAndClose();

  //var doc = DocsList.createFile(fileBlob.getDataAsString());
  var app = UiApp.getActiveApplication();
  app.getElementById('panel').add(app.createLabel('File Uploaded successfully'));
  return app;
}
当我尝试使用此Google Apps脚本代码上载文件时,我不断收到未定义的返回。我只想把一个文本文件上传到我的谷歌硬盘上


我应该如何修复此代码?或者有更好的方法吗?

要上传文件,不能使用服务器处理程序。您必须使用FormPanel和Submit按钮。请参阅。

谷歌应用程序脚本现在有了“实验性”资源来
高级谷歌服务
。我统计了15项高级服务,包括
驱动API

单击
资源
菜单:

您还必须转到Google开发者控制台,并在那里启用
驱动器服务

谷歌文档位于:

以下是来自谷歌的一些示例代码:

function uploadFile() {
  var image = UrlFetchApp.fetch('http://goo.gl/nd7zjB').getBlob();
  var file = {
    title: 'google_logo.png',
    mimeType: 'image/png'
  };
  file = Drive.Files.insert(file, image);
  Logger.log('ID: %s, File size (bytes): %s', file.id, file.fileSize);
}
编辑

我原以为无法使用HTML服务将文件从用户计算机上传到Google drive,但幸运的是,我又错了!:)


对我来说很好,使用
/dev
URL进行测试。如果您使用发布的URL进行测试,是否确保保存并发布最新版本?它上载了一个文件,但所有文件都包含“未定义”啊-当您说您得到未定义的“返回”时,出于某种原因,我想到了一个函数返回码。我的错。我应该解释一下,在中看到的可能是更好的副本,但是@waqar ahmad发布了一个带有更改处理程序的文件,该文件正在上传。一般来说,我相信他。。。但这在今天不起作用。这个答案中的文档链接和评论中的教程链接都使用Google的UI服务FileUpload类。问题是,如果已经使用HTML服务设计了应用程序,则不能将UI服务与HTML服务一起使用。但有一个更好的方法: