匿名Google Drive上传创建新文件夹

我正在使用谷歌应用程序脚本找到here,让匿名用户将文件上传到我的Google Drive。

我想让脚本使用表单上输入的名称创建一个文件夹,然后将文件存放在该文件夹中。

到目前为止,我以某种方式让它工作了(我想我应该提到我不知道我在做什么)。

我还想让脚本检查文件夹是否已经存在,然后将新文件存放在文件夹中。

示例:博比将file1上传到“博比”文件夹中。然后他回来上传file2。File2也应该保存在文件夹'Bobby‘中。

现在,脚本正在检查文件夹名称,当它看到它已经创建时,它会将文件存放在根文件夹“Uploads”中,而不是“Bobby”文件夹中。

如何让脚本在不创建新文件夹和不保存到根文件夹的情况下将同一用户的其他文件存放在该用户的现有文件夹中?

这是我现在正在做的事情:(我有没有提到我不知道我在做什么?)

?

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');

}

function uploadFiles(form) {

  try {

    var upload = "Uploads";
    var folder, folders = DriveApp.getFoldersByName(upload);

    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(upload);
    }

    var blob = form.file;
    var name = form.name;

    var filefolder, filefolders = DriveApp.getFoldersByName(name);

    if (filefolders.hasNext()) {
      filefolder = filefolders.next();
      var file = folder.createFile(blob);
      file.setDescription("Uploaded by " + name);
    } else {
      var file = folder.createFolder(name).createFile(blob);
      file.setDescription("Uploaded by " + name);
    }

    return "File uploaded successfully " + file.getUrl();

  } catch (error) {

    return error.toString();
  }

}
<!doctype html>
<style type="text/css">
  * {
    font-family: "Verdana";
  }
  
  body {
    background-color: #EEEEEE;
  }
  
  .container {
    margin: 0 auto;
    display: block;
    width: 50%;
  }
  
  #myForm {
    width: 50%;
    margin: 0 auto;
    background: #f4d03f;
    border-radius: 10px;
    box-shadow: 5px 5px 10px #aaa;
    padding: 20px;
    color: #fff;
  }
  
  .inputname {
    display: inline-block;
    height: 30px;
    width: 300px;
    padding: 5px;
    border: none;
    text-align: center;
    background-color: #eee;
  }
  
  .inputname:hover {
    background: #fff;
    box-shadow: 0 0 15px #777;
    transition: 0.2s;
  }
  
  .inputfile {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
  }
  
  .inputfile+label,
  .inputsubmit {
    color: #fff;
    font-size: 1.25em;
    font-weight: 700;
    display: inline-block;
    background-color: #2abb9b;
    padding: 20px;
    cursor: pointer;
    border: none;
    border-radius: 3px;
  }
  
  .inputfile:focus+label,
  .inputfile+label:hover,
  .inputsubmit:hover {
    background-color: #87D37C;
    box-shadow: 0 0 15px #777;
    transition: 0.2s;
  }
</style>

<div class="container" align="center">
  <form id="myForm" align="center">
    <h1>Teacher Mike's Google Drive</h1>
    <h2>Upload Files Below</h2>
    <hr>
    <input type="text" class="inputname" name="name" placeholder="Your nickname..">
    <!--<input type="file" class="file" name="myFile">
            <label for="myFile">Choose a File</label>-->
    <input type="file" name="file" id="file" class="inputfile" />
    <label for="file">Choose a file</label>
    <input type="submit" class="inputsubmit" value="Upload File" onclick="this.value='Uploading..';
                    google.script.run.withSuccessHandler(fileUploaded)
                    .uploadFiles(this.parentNode);
                    return false;">
    <hr>
  </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>
</div>

?

提前感谢!

附注:文件上传成功后,有没有办法打开文件夹?

转载请注明出处:http://www.lvguanye.net/article/20230526/1203553.html