Google 脚本继续上传同一文件夹中的文件

Google script keep uploading files in Same folder

我有两个文件:code.gs 和 form.html。我在 code.gs 中更改了文件夹名称,但它仍然在同一文件夹中上传,即 Student Files。

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>

code.gs

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

function uploadFiles(form) {

  try {   

    var folderName = "Test";
    var exist = true;
    try {
      var folderName = DocsList.getFolder(folderName)
      }

    catch(err) {
      exist=false
    }

    if (exist) {
      folder = folderName;
    } else {
      folder = DriveApp.createFolder(folderName);
    }

    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();
  }

}

code.gs 文件包含一个变量文件夹名称。

已检查此名称,如果此名称的文件夹不存在,则会创建一个新文件夹。但这里没有创建新文件夹。相反,文件被上传到同一个文件夹中,即 Student Files。

改变你的code.gs

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

function uploadFiles(form) {

  try {   

    var folderName = "Test";
    var exist = true;
    try {
      var folderName = DriveApp.getFoldersByName(folderName)
      }

    catch(err) {
      exist=false
    }

    if (exist) {
      folder = folderName;
    } else {
      folder = DriveApp.createFolder(folderName);
    }

    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();
  }

}

上一个答案只是问题代码的副本。

DocsList.getFolder(folderName) 函数可能无法获取任何文件夹,这就是文件上传到之前文件夹中的原因。