根据表单响应将文件上传到Google驱动器中的文件夹中

问题描述

首先,我想说我对javascript几乎一无所知。我正在尝试使用Google App脚本开发一个表单,您可以在其中上传文件,它会根据您在表单中输入的响应自动将其放入特定的文件夹中。例如,如果我以表格的形式询问您要选择哪个类,而用户选择类“ 1”,则文件将被上载到“类1”文件夹中。借助此论坛中的答案,我能够创建一些应该起作用的东西,但是由于某种原因,它不起作用。以我有限的知识,即使这是一个非常简单的修复程序,我也无法找到问题,因为正如我所说,我不太了解Javascript。代码中的某些单词是意大利语,希望这不是问题。这是我的代码,但是由于某些原因,它不起作用:

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




function uploadFiles(form) {

  try {    

  if(form.classi == "classe1") {   
    var dropBox = "Classi prime";    
    }

else if(form.classi == "classe2") {
var dropBox = "Classi seconde";    
}

else if(form.classi == "classe3") {
var dropBox = "Classi terze";    
}

else if(form.classi == "classe4") {
var dropBox = "Classi quarte";        
}
    
else if(form.classi == "classe5") {
var dropBox = "Classi quinte";        
}

var folder,folders = DriveApp.getFoldersByName(dropBox);  

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

var blob = form.myFile; 
var fileBlob = form.myFile;
var fname = fileBlob.getName();
var newName = form.myLastName+form.myFirstName; // simple example
// extract extension using RegEx
// from http://stackoverflow.com/a/680982/1677912
var extensionfinder = /(?:\.([^.]+))?$/; 
var ext = extensionfinder(fname)[1];
fileBlob.setName(newName+'.'+ext);
var file = folder.createFile(blob);    
file.setDescription("Caricato da " + form.myFirstName+form.myLastName);

  return "<p> Il tuo file è stato caricato correttamente," + form.myFirstName + "!";
}


catch (error) {

return error.toString();
}

}
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <title>Caricamento file Liceo Augusto</title>
    
    <style>
    
    
input[type=text],select,textarea {
  width: 100%; 
  padding: 12px;  
  border: 1px solid #ccc; 
  border-radius: 4px; 
  Box-sizing: border-Box;
  margin-top: 6px; 
  margin-bottom: 16px;
  resize: vertical 
}


input[type=submit] {
  background-color: #c72222;
  color: white;
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}


input[type=submit]:hover {
  background-color: #6e1010;
}


.container {
  border-radius: 5px;
  background-color: #f2f2f2;
  padding: 20px;
  margin: auto;
  width: 70%;
  border: 3px solid black;
}
    
    </style>
    
  </head>
  <body>
  
  <h1><center>Compila il modulo per inviare il tuo documento</center></h1>
  
  <div class="container">
  <form id="uploadFilesForm">
  
<label for="classe">Seleziona la classe:</label>
<select id="classi" name="classi">
    <option value="classe1">1</option>
    <option value="classe2">2</option>
    <option value="classe3">3</option>
    <option value="classe4">4</option>
    <option value="classe5">5</option>
</select>

<label for="name">Nome:</label>
    <input type="text" id="fname" name="myFirstName" placeholder="Il tuo nome...">
    
<label for="lname">Cognome:</label>
    <input type="text" id="lname" name="myLastName" placeholder="Il tuo cognome...">

<input type="file" name="myFile">
<br><br>
<center><input type="submit" value="Invia documento" 
       onclick="this.value='Caricamento...';
                google.script.run.withSuccessHandler(fileUploaded)
                .uploadFiles(this.parentNode);
                return false;"
                >
</center>
</form>
</div>
<script>
function fileUploaded(status) {
    document.getElementById('myForm').style.display = 'none';
    document.getElementById('output').innerHTML = status;
}
</script>
    
  </body>
</html>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)