【问题标题】:Upload files to a directory in Google Drive将文件上传到 Google Drive 中的目录
【发布时间】:2015-02-20 19:02:11
【问题描述】:

我正在尝试设置一个表单,将文件上传到我的谷歌驱动器的特定目录,而不是主目录。

我找到了一个可以上传文件的脚本,它可以正常工作,但我希望它进入不同的文件夹。

目前文件将进入“/” 如何使文件转到“/new/property/uploads/”?

谷歌脚本:

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

function uploadFiles(form) {

  try {

    var dropbox = "Uploads";
    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 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>

感谢您的帮助。

【问题讨论】:

    标签: forms google-apps-script google-drive-api


    【解决方案1】:

    通过driveApp获取文件夹并保存在那里,非常简单。

    1. 手动创建文件夹,如果您需要动态,还有几个步骤
    2. 获取ID -> 在浏览器中导航并打开文件夹,最后一个“/”后面的最后一个数字是文件夹的ID
    3. 使用 driveApp 功能getFolderById(String) 选择您的文件夹,例如。 folder = DriveApp.getFolderById(ID)

    在这种情况下,检查文件夹是没有意义的。

    【讨论】:

      【解决方案2】:

      如果您想要的文件夹不存在,并且您想创建一个新的子文件夹树,您需要在该文件夹中创建一个新文件夹。文件夹类有一个createFolder() 方法。 DriveApp 类也有一个createFolder() 方法,但这会将一个新文件夹放入主驱动器根目录中。因此,DriveApp 和 Folder 都有一个 createFolder() 方法。关键是首先获取要使用createFolder() 的文件夹的引用,以创建一个新文件夹作为子文件夹。

      function uploadFiles(form) {
      
        try {
      
          var dropbox = "Uploads";
          var folder, folders = DriveApp.getFoldersByName(dropbox);
      
          if (folders.hasNext()) {
            folder = folders.next();
          } else {
            var firstLevelFolder = DriveApp.createFolder("new");
            var secondLevelFolder = firstLevelFolder.createFolder("property");
            var folder = secondLevelFolder.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) {
          Logger.log('err: ' + error.toString());
          return error.toString();
        }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多