Как загрузить несколько файлов с помощью нескольких кнопок - Google Apps Script - PullRequest
0 голосов
/ 27 марта 2019

У меня есть код, который создает папку на моем диске 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, но он не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...