Skip to content

Instantly share code, notes, and snippets.

@neno-tech
Last active November 27, 2021 02:48
Show Gist options
  • Save neno-tech/05a047770c6be3cee44afbd9a1aae6e0 to your computer and use it in GitHub Desktop.
Save neno-tech/05a047770c6be3cee44afbd9a1aae6e0 to your computer and use it in GitHub Desktop.
เว็บแอปอัปโหลดไฟล์ แบบใช้ doPost แชร์รายการคุยกันวันเสาร์กับครูอภิวัฒน์"สอนสร้างสื่อ"
function doGet(e) {
var htmlOutput = HtmlService.createTemplateFromFile('index');
htmlOutput.message = '';
return htmlOutput.evaluate();
}
function doPost(e) {
var folder = DriveApp.getFolderById('xxx');//เปลี่ยนเป็นไอดีโฟลเดอร์เก็บไฟล์ของท่าน;
var data = Utilities.base64Decode(e.parameter.fileData);
var blob = Utilities.newBlob(data, e.parameter.mimeType, e.parameter.fileName);
var file = folder.createFile(blob);
var fileURL = file.getUrl();
recordData(e.parameter.username, e.parameter.fileName,fileURL);
var htmlOutput = HtmlService.createTemplateFromFile('success');
htmlOutput.message = 'อัปโหลดไฟล์เรียบร้อยแล้ว';
return htmlOutput.evaluate();
}
function recordData(username, fileName, fileURL){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
ss.appendRow([new Date(), username, fileName, fileURL]);
}
function getUrl() {
var url = ScriptApp.getService().getUrl();
return url;
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<?var url = getUrl();?>
<form method="post" action="<?= url ?>">
<div class="mb-3">
<label for="username" class="form-label"> ชื่อ สกุล</label>
<input type="text" class="form-control" name="username" placeholder="ชื่อ สกุล" required>
</div>
<div class="mb-3">
<label class="form-label"> อัปโหลดไฟล์</label>
<input type="file" class="uploader form-control" name="file" onchange="LoadFile(event)">
<input type="hidden" id="fileData" name="fileData">
<input type="hidden" id="mimeType" name="mimeType">
<input type="hidden" id="fileName" name="fileName">
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary"> อัปโหลด</button>
</div>
</form>
<script>
function LoadFile(event) {
var file = event.target.files[0];
var reader = new FileReader();
reader.onload = function (e) {
var fileData = e.target.result.substr(e.target.result.indexOf(",") + 1);
var mimeTypeStart = e.target.result.indexOf("data:") + 5;
var mimeTypeEnd = e.target.result.indexOf(";");
var mimeType = e.target.result.substr(mimeTypeStart, mimeTypeEnd - mimeTypeStart);
var fileName = file.name;
document.getElementById("fileData").value = fileData;
document.getElementById("mimeType").value = mimeType;
document.getElementById("fileName").value = fileName;
};
reader.readAsDataURL(file);
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment