I have web form
<body>
<div id="formcontainer">
<h1 for="myForm">INOV Request</h1>
<label for="myForm">The main purpose of this form is to register requests to INOV department. For each project or any type of request please fill in a new form. Fill in the name of a project in the same format as it is in NetSuite.</label>
<br><br>
<label for="attachType">Type of request:</label>
<br>
<select name="attachType" id="typeOfRequest">
<option value="New">New</option>
<option value="Update">Update</option>
</select>
<br>
<label for="attachType">Type of product:</label>
<br>
<select name="attachType" id="typeOfProduct">
<option value="Component (Item)">Component (Item)</option>
<option value="Product (Assembly)">Product (Assembly)</option>
<option value="For Dirac">For Dirac</option>
<option value="Product line">Product line</option>
<option value="Supplier development">Supplier development</option>
</select>
<br>
<label for="attachType">Requestor:</label>
<br>
<select name="attachType" id="requestor">
<option value="Pavel Kvasnicka">Pavel Kvasnicka</option>
<option value="Alena Valentova">Alena Valentova</option>
<option value="Martina Blazkova">Martina Blazkova</option>
<option value="Milan Sedlacek">Milan Sedlacek</option>
<option value="Jakub Horinek">Jakub Horinek</option>
</select>
<br>
<form id="myForm">
<label for="myForm">Project name:</label>
<div>
<input type="text" name="zone" placeholder="Zone:" id="projectName">
</div>
<label for="fileText">Request description:</label>
<TEXTAREA name="projectDescription"
placeholder="Describe your attachment(s) here:"
style ="width:600px; height:100px;"
id="projectDescription"
></TEXTAREA>
</div>
<br>
<label for="myFile">Attachment(s):</label>
<br>
<input type="file" name="filename" id="myFile" multiple>
<input type="button" value="Submit" onclick="iteratorFileUpload()">
</form>
</div>
<div id="output"></div>
<div id="progressbar">
<div class="progress-label"></div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script>
var numUploads = {};
numUploads.done = 0;
numUploads.total = 0;
// Upload the files into a folder in drive
// This is set to send them all to one folder (specificed in the .gs file)
function iteratorFileUpload() {
var allFiles = document.getElementById('myFile').files;
if (allFiles.length != 0) {
//Show Progress Bar
numUploads.total = allFiles.length;
$('#progressbar').progressbar({
value : false
});//.append("<div class='caption'>37%</div>");
$(".progress-label").html('Preparing files for upload.');
}
var typeOfRequest = document.getElementById('typeOfRequest').value;
var typeOfProduct = document.getElementById('typeOfProduct').value;
var requestor = document.getElementById('requestor').value;
var projectName = document.getElementById('projectName').value;
var projectDescription = document.getElementById('projectDescription').value;
if(projectName != '' && projectDescription != ''){
google.script.run.createFolder(typeOfRequest, typeOfProduct, requestor, projectName, projectDescription);
}
// Send each file at a time
for (var i = 0; i < allFiles.length; i++) {
sendFileToDrive(allFiles[i]);
}
}
function sendFileToDrive(file) {
var reader = new FileReader();
reader.onload = function (e) {
var content = reader.result;
console.log('Sending ' + file.name);
// set the file's name where you want to set your files
var folderName = 'Files';
google.script.run.withSuccessHandler(updateProgressbar).uploadFileToDrive(content, file.name, folderName);
}
reader.readAsDataURL(file);
}
and functions
function uploadFileToDrive(base64Data, fileName, folderName) {
try{
var splitBase = base64Data.split(','),
type = splitBase[0].split(';')[0].replace('data:','');
var byteCharacters = Utilities.base64Decode(splitBase[1]);
var ss = Utilities.newBlob(byteCharacters, type);
ss.setName(fileName);
var inov_request = SpreadsheetApp.openByUrl(spreadsheet_DB).getSheetByName(sheet_DB);
var newFolderId = inov_request.getRange(inov_request.getLastRow(), 1).getValue();
// Get your Uploads folder
var folders = DriveApp.getFoldersByName(folderName);
// Regex for splitting the file's extention like .pdf
var patt1 = /\.[0-9a-z]+$/i;
if (folders.hasNext()) {
var folder = folders.next();
var file = folder.createFile(ss);
return file.getName();
} else return null;
} catch(e){
return 'Error: ' + e.toString();
}
}
function createFolder(typeOfRequest, typeOfProduct, requestor, projectName, projectDescription){
var inov_request = SpreadsheetApp.openByUrl(spreadsheet_DB).getSheetByName(sheet_DB);
var lastRequestNumber = inov_request.getRange(inov_request.getLastRow(), 1).getValue();
var folders = DriveApp.getFoldersByName('Files');
var newRequestNumber = lastRequestNumber + 1;
var newFolder = folders.createFolder(newRequestNumber).setName(newRequestNumber);
inov_request.appendRow([newRequestNumber,new Date(),typeOfRequest,typeOfProduct,requestor,projectName,projectDescription, "Waiting for check", newFolder.getId()]);
}
this is combined with google sheet file where I save output of web form + name of folder. The name of folder (newRequestFolder) is later on read and used for new folder and upload files into this folder. The code above is working, but all files are saved into one folder with name 'Files'.
I want to save files into folder with name readed from google sheet file, but I tried a lot of, but witout succes.
I have got into situation that small files were upload into wrong folder and big files were upload into right folder, propably because server response time.
It was the best result, but I need to be sure that all files will be in right folder.
Thank you with any idea or help