簡體   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