繁体   English   中英

如何使用Google应用脚本一次将多个文件上传到Google云端硬盘?

[英]How to upload several files at once to Google Drive using Google app script?

我正在尝试使用Google应用程序脚本一次将多个文件上传到Google云端硬盘。 我创建了一个upload.html页面,其中包含-

    <input type="file" name="myFile" id="file-select" multiple/>

但是我也需要在JavaScript部分中更改更多内容,而且我不知道要更改什么,也没有找到有关此问题的文档。

我需要在“ Code.gs”文件中分别处理每个文件。

例如:

在.gs文件中

    var file = form.myFile; 

不幸的是,这是指我上传的第一个文件,而不是全部。 我如何推荐所有这些人?

这个问题仍然有意义。 在此先感谢任何可以提供帮助的人!

我想知道Caja是否以某种方式不允许Input元素具有多文件功能。 Caja是HTML上使用的卫生程序。

Google Caja开发人员页面

如果您查看此文档:

Mozilla文档-文件列表

您应该能够访问INPUT元素中的所有文件名,并对其内容进行迭代。 使用客户端代码而不是Google .gs服务器端代码循环遍历INPUT元素中的所有文件。

// Get all the files out of the INPUT element
var fileInput = document.getElementById("file-select");
console.log('fileInput: ' + fileInput);

// files is a FileList object (similar to NodeList)
var files = fileInput.files;
console.log('files: ' + files);

但是,我在控制台日志中收到一条错误消息msg,该错误是文件变量未定义。

HTML <input>标记(配置为文件选择器)将文件名放入对象中。 对象中的信息需要以某种方式传递到.gs文件。 由于文件选择器可以选择多个文件,因此代码需要处理多个文件。 您可以一个接一个地上传文件,一次遍历所有文件,或者以某种方式运行异步代码。 .gs脚本可以在第一个文件完成之前开始上传第二个文件。 同时上传多个文件比让代码在完成当前文件之前等待上传下一个文件要快。

您可以直接通过“提交”按钮运行.gs脚本:

<input type="button" value="Submit"
  onclick="google.script.run.withSuccessHandler(gsFunctionName).processForm(this.parentNode)" />

或在HTML标记中运行JavaScript,然后再运行.gs服务器端代码:

<form onsubmit="fncMyClientSideCode(this)" id="idUploadForm">
  <input>
  <button type="submit" id="btnUpload">Upload Now!</button>
</form>

<script>
  window.fncMyClientSideCode = function(objArgPassed) {
     //my statements here
     google.script.run.withFailureHandler(onUploadFail)
      .withSuccessHandler(onRegSccss)
     .fncUploadFiles(objArgPassed);
  }
</script>

我展示了几种用于一般信息的HTML使用方式。 您需要对其进行修改以供使用,测试和调试。

那仅仅是开始。 您需要知道如何访问对象中的信息,编写代码以遍历每个文件,或者将其保存到特定文件夹。 有关使用Apps脚本将文件保存到Google云端硬盘的问题很多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM