如何将此示例应用于我已经存在的代码行

How to apply this example to my already existing line of code?

本文关键字:存在 代码 应用于      更新时间:2023-09-26

目前我正在使用一个示例在Google Apps Script上为我的网页创建上传功能。这是代码:

代码.gs

function doGet(e) {
 return HtmlService.createHtmlOutputFromFile('form.html');
}
function uploadFiles(form) {
 try {
 var dropbox = "Test Files";
 var folder, folders = DriveApp.getFoldersByName(dropbox);
 if (folders.hasNext()) {
  folder = folders.next();
 } else {
  folder = DriveApp.createFolder(dropbox);
 }
 var blob = form.myFile;    
 var file = folder.createFile(blob);    
 file.setDescription("Uploaded by " + form.myName);
 return "File uploaded successfully " + file.getUrl();
 } catch (error) {
 return error.toString();
 }
}

form.html

<form id="myForm">
<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>
<div id="output"></div>
<script>
    function fileUploaded(status) {
        document.getElementById('myForm').style.display = 'none';
        document.getElementById('output').innerHTML = status;
    }
</script>
<style>
 input { display:block; margin: 20px; }
</style>

此代码本身运行良好,但当我尝试使用当前现有代码在网页上实现它时:https://jsfiddle.net/05nmqy63/

它不会像示例中显示的那样工作。这个例子将一个文件上传到我的谷歌文档中的一个文件夹中,但当放入我的代码中时,页面会发生变化,但它没有上传任何内容,也没有说文件已经提交。

我该如何解决这个问题?或者有没有一种更简单的方法来实现上传按钮?(我希望提交订单按钮能够作为上传按钮)

在发现问题后,找出了问题所在。我收到的错误是:未捕获的InvalidArgumentError:由于属性0 中的非法值而失败

此错误由论坛上的另一个人解决:google.script.run不工作:Uncaught InvalidArgumentError:由于属性0 中的非法值而失败