我使用基于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>
google script
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 :(得分:0)
您可以在表单中添加必需的属性。
<input type="text" required name="myName" placeholder="name of the file..">
这将导致浏览器在提交表单之前检查是否输入了值。如果该字段为空,则浏览器将显示错误并且无法提交表单。
用户仍然可以删除所需的属性,但由于您无法访问服务器端,因此这是您可以做的最佳选择。