2017-06-04 59 views
0

我使用基于HTML和JavaScript的小脚本来启用第三方上传文件到我的驱动器。他们应该命名该文件,以便以后可以识别它。不幸的是许多人忘记这样做。在提交前强制输入myName需要进行哪些更改?谷歌脚本 - 提交之前需要字符串输入

HTML代码

<form id="myForm"> 
<input type="text" name="myName" placeholder="name of the file.."> 
<input type="file" name="myFile"> 
<input type="submit" value="Abschicken" 
onclick="this.value='Please wait..'; 
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> 

谷歌脚本

function doGet(e) { 
    return HtmlService.createHtmlOutputFromFile('form.html'); 
} 
function uploadFiles(form) { 
    try { 
     var dropbox = "Fotos"; 
    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("Projekt: " + form.myName); 
    file.setName("FOTO_" + form.myName); 
    return "Upload completed."; 
    } catch (error) { 
    return error.toString(); 
    } 
} 

回答

0

可以TE所需属性添加到窗体。

<input type="text" required name="myName" placeholder="name of the file.."> 

这会导致浏览器在提交表单前检查是否输入了值。如果该字段为空,则浏览器将显示错误,并且不会提交表单。

用户仍然可以删除所需的属性,但由于您无法访问服务器端,因此这是最好的选择。

相关问题