เลือก Type: Web app, Execute as: Me, Who has access: Anyone
คลิก "Deploy" → อนุญาต → คัดลอก Web app URL
วาง URL ด้านล่างแล้วคลิก "บันทึกและทดสอบ"
function getOrCreateFolder(parent, name) {
var it = parent.getFoldersByName(name);
if (it.hasNext()) return it.next();
return parent.createFolder(name);
}
function doPost(e) {
try {
var data = JSON.parse(e.postData.contents);
var FOLDER_ID = '1lHjS5HCYlx0OWgViHzHmF-ip5rKLhgpL';
var parentFolder = DriveApp.getFolderById(FOLDER_ID);
var jobFolderName = (data.folder || 'unknown').toString();
var folder = getOrCreateFolder(parentFolder, jobFolderName);
if (data.pdf) {
// ลบไฟล์ PDF เดิมทั้งหมดในโฟลเดอร์นี้ก่อน เหลือไว้แค่ไฟล์ล่าสุด
var oldPdfs = folder.getFilesByType(MimeType.PDF);
while (oldPdfs.hasNext()) {
oldPdfs.next().setTrashed(true);
}
var bytes = Utilities.base64Decode(data.pdf);
var blob = Utilities.newBlob(bytes, 'application/pdf', data.filename);
var file = folder.createFile(blob);
return ContentService
.createTextOutput(JSON.stringify({success:true, url:file.getUrl(), name:data.filename}))
.setMimeType(ContentService.MimeType.JSON);
}
if (data.photo) {
var pbytes = Utilities.base64Decode(data.photo);
var mime = data.filename && data.filename.toLowerCase().endsWith('.png') ? 'image/png' : 'image/jpeg';
var pblob = Utilities.newBlob(pbytes, mime, data.filename);
var pfile = folder.createFile(pblob);
return ContentService
.createTextOutput(JSON.stringify({success:true, url:pfile.getUrl(), name:data.filename}))
.setMimeType(ContentService.MimeType.JSON);
}
throw new Error('No pdf or photo field in request body');
} catch(err) {
return ContentService
.createTextOutput(JSON.stringify({success:false, error:err.toString()}))
.setMimeType(ContentService.MimeType.JSON);
}
}