我想知道Caja是不是某種程度上允許輸入元素的多個文件能力。 Caja是HTML上使用的衛生程序。
Google Caja Developers Page
如果你看看這個文檔:
Mozilla Documentation - File List
你應該能夠在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);
但是,我在控制檯日誌中收到錯誤消息,說明文件變量未定義。
將HTML <input>
標籤配置爲文件選取器,將文件的名稱放入對象中。對象中的信息需要以某種方式傳遞給.gs文件。由於文件選取器可以選擇多個文件,因此代碼需要處理多個文件。您可以一個接一個地上傳文件,一次一個地循環所有文件,或者以某種方式運行異步代碼。 .gs腳本可以在第一個文件完成之前開始上傳第二個文件。上傳多個文件的速度會更快,而不是讓代碼等待在當前文件完成之前上傳下一個文件。
您可以從一個提交按鈕直接運行一個腳本.GS:
<input type="button" value="Submit"
onclick="google.script.run.withSuccessHandler(gsFunctionName).processForm(this.parentNode)" />
或在HTML標籤,然後運行.GS服務器端代碼運行JavaScript:
<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雲端硬盤存在很多問題。
這個問題對於你卡住的東西很模糊。好的問題包括可以重現問題的具體問題和示例代碼。但是,通過Google apps腳本上傳文件的文檔可以在https://developers.google.com/apps-script/reference/ui/file-upload上找到,您可能需要Drive SDK文檔:https: //developers.google.com/apps-script/advanced/drive。 – HDCerberus 2014-10-19 15:00:30
http://stackoverflow.com/a/28161468/280562 – MBoros 2015-05-12 09:31:27