2017-06-04 64 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.."> 

這會導致瀏覽器在提交表單前檢查是否輸入了值。如果該字段爲空,則瀏覽器將顯示錯誤,並且不會提交表單。

用戶仍然可以刪除所需的屬性,但由於您無法訪問服務器端,因此這是最好的選擇。

相關問題