У меня есть код, который создает папку на моем диске Google и позволяет пользователю загружать несколько файлов с загрузкой файлов в качестве входных данных.
Script.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
(function($){
function floatLabel(inputType){
$(inputType).each(function(){
var $this = $(this);
$this.focus(function(){
$this.next().addClass("active");
});
$this.blur(function(){
if($this.val() === '' || $this.val() === 'blank'){
$this.next().removeClass();
}
});
});
}
floatLabel(".floatLabel");
})(jQuery);
jQuery(".mail-btn").on("click touchstart", function () {
jQuery(this).addClass("fly");
that = this
setTimeout(function() {
jQuery(that).removeClass("fly");
}, 5400)
});
var rootFolderId = 'MYFOLDERID';
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 uploadFiles() {
//var allFiles = document.getElementById('myFiles').files;
var allFiles = document.querySelector('input[type=file]').files;
var applicantName = document.getElementById('pname').value;
if (!applicantName) {
window.alert('Missing applicant name!');
}
var applicantEmail = document.getElementById('email').value;
if (!applicantEmail) {
window.alert('Missing applicant email!');
}
var folderName = applicantName + ' ' + applicantEmail;
if (allFiles.length == 0) {
window.alert('No file selected!');
} else {
numUploads.total = allFiles.length;
google.script.run.withSuccessHandler(function(r) {
// send files after the folder is created...
for (var i = 0; i < allFiles.length; i++) {
// Send each file at a time
uploadFile(allFiles[i], r.folderId);
}
}).createFolder(rootFolderId, folderName);
}
}
function uploadFile(file, folderId) {
var reader = new FileReader();
reader.onload = function(e) {
var content = reader.result;
//document.getElementById('files1').innerHTML = 'uploaded '
+ file.name + '...';
//window.alert('uploading ' + file.name + '...');
google.script.run.withSuccessHandler(showSuccess)
.uploadFile(content, file.name, folderId);
}
reader.readAsDataURL(file);
//document.getElementById('Assessment-form').reset();
}
function showSuccess(e) {
$('#forminner').hide();
$('#success').show();
$('#Assessment-form').trigger("reset");
}
</script>
</body>
</html>
form.html
<input type="file" id="myFiles1" class="floatLabel" name="f1" multiple>
<input type="file" id="myFiles2" class="floatLabel" name="f2" multiple>
Это позволяет мне загружать несколько файлов, используя одну кнопку файла (только используя myFiles1). Я пытаюсь загрузить файлы в одну папку с помощью нескольких файловых кнопок (myFiles1 и myFiles2). Я пытался изменить
var allFiles = document.querySelector('input[type=file]').files;
с несколькими вещами, такими как querySelectorAll, но он не работает.