我需要一些帮助。我不是程序员。
我正在寻找一个用于多次上传的Google脚本。我在网上找到了这个免费的共享脚本:https://script.google.com/d/1x3p9ZAv-SafEK06r_Vr7fVuUNtEfBg1SGhmSYWjQ0kuPTk-y55a7Nink/edit?usp=sharing
我不知道如何编辑它。我真的不是程序员。 我想让2'选择文件'一次上传。
这是原始表格
<form id="myForm" align="center">
<input type="text" name="myName" placeholder="Your name..">
<input type="file" name="myFile">
<input type="submit" value="Upload File"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
我想要的是什么,
<form id="myForm" align="center">
<input type="text" name="myName" placeholder="Your name..">
<input type="file" name="myFile">
<input type="file" name="myFile"> <--THIS IS MY NEED, Pls don't laugh
<input type="submit" value="Upload File"
onclick="this.value='Uploading..';
google.script.run.withSuccessHandler(fileUploaded)
.uploadFiles(this.parentNode);
return false;">
</form>
提前致谢。 干杯 Wan Heri
答案 0 :(得分:1)
我想出了一个解决此问题的方法。使用Google Drive V3 Api,您可以通过几种不同的方式上传文件。接受的答案直接使用api上传blob。根据我的实验,看来此方法仅支持50MB文件。上传较大的文件需要使用可恢复的上传方法。
我创建了一个示例表单,该表单可以创建文件夹,上传大文件并按顺序上传这些文件。我在这里创建了一个git hub:https://github.com/CharlesPlucker/drive-multi-upload/
主要要点包括几个不同的部分。最简单的是,您需要输入具有multiple
属性。您将要遍历该输入的文件。像这样:
var files = [...$('#files')[0].files]; // convert from FileList to array
files.forEach(file => { uploadfile(file); });
答案 1 :(得分:0)
根据此thread,您现在必须使用work around来处理多个文件。 multiple属性仅在IFRAME模式下工作,但文件输入在IFRAME模式下断开。
这是一个用于多文件上传的示例代码。限制是文件必须小于10 MB。
function doGet() {
return HtmlService.createHtmlOutputFromFile('index').setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function saveFile(data,name,folderId) {
var contentType = data.substring(5,data.indexOf(';'));
var file = Utilities.newBlob(Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)), contentType, name);
DriveApp.getFolderById(folderId).createFile(file);
}
其他参考资料: