Как загрузить БОЛЕЕ ОДНОГО ФАЙЛА в папку Google Диска - PullRequest
0 голосов
/ 07 мая 2020

Я хочу, чтобы файлы загружались в папку Google Диска со страницы publi c. На данный момент я могу загрузить только один файл. Во входном файле я помещаю атрибут multiple, но из выбранных файлов загружаю только один. Я использую скрипт Google Apps.

- Файл server.gs -

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('forms.html').setTitle("Subir Archivos");
}


function uploadFileToGoogleDrive(data, file, name) {
  
  try {
    
    
    var dropbox = "Carpeta de archivos"
    var folder, folders = DriveApp.getFoldersByName(dropbox);
    
    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }
    
   
    
    var contentType = data.substring(5,data.indexOf(';')),
        bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,')+7)),
        blob = Utilities.newBlob(bytes, contentType, file),
        file = folder.createFile(blob);
    
    return "OK";
    
  } catch (f) {
    return f.toString();
  }
  
}

- Файл «формы. html» -

<!DOCTYPE html>
<html>
  <head>
    <base target="_blank">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Subir Archivos</title>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/css/materialize.min.css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
  </head>
  <body>
<form class="main" id="form" novalidate="novalidate" style="max-width: 450px;margin: 5px auto;">
      <div id="forminner">
        
	
	<div class="input-field col s12">
            <b><font face="arial" size="3"><span for="disabled" style="color: #384047;">Sube tus archivos:</span></font></b>
          
        </div>
	
	  <div class="file-field input-field col s12">
            <div class="btn">
              <span>Archivo</span>
              <input id="files" type="file" multiple>
            </div>
            <div class="file-path-wrapper">
              <input class="file-path validate" type="text" placeholder="Seleccione uno o más archivos de su equipo">
            </div>       
        </div>
 
        
          <div class="input-field col s6">
            <button class="waves-effect waves-light btn submit-btn" type="submit" onclick="submitForm(); return false;">Enviar</button>
          
	  </div>
	   
	<div class="row">
          <div class="input-field col s12" id = "progress">
          </div>
        </div>
</div>
      <div id="success" style="display:none">
        <h5 class="left-align teal-text">Archivo subido</h5>
          <p>Tu archivo se ha cargado correctamente.</p>
      </div>
    </form>
 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.5/js/materialize.min.js"></script>
    <script src="https://gumroad.com/js/gumroad.js"></script>
    
    

    <script> 
	  var file, 
          reader = new FileReader();
 
      reader.onloadend = function(e) {
        if (e.target.error != null) {
          showError("File " + file.name + "No se pudo leer.");
          return;
        } else {
          google.script.run
            .withSuccessHandler(showSuccess)
            .uploadFileToGoogleDrive(e.target.result, file.name);
        }
      };
 
      function showSuccess(e) {
        if (e === "OK") { 
          $('#forminner').hide();
          $('#success').show();
        } else {
          showError(e);
        }
      }
 
      function submitForm() {
 
        var files = $('#files')[0].files;
 
        if (files.length === 0) {
          showError("Porfavor seleccione un archivo para subir");
          return;
        }
 
        file = files[0];
 
        if (file.size > 1024 * 1024 * 100) {
          showError("El tamaño del archivo debe ser <100 MB");
          return;
        }
	 

        showMessage("Subiendo archivo, espere...");
        
 
        reader.readAsDataURL(file);
      }
 
      function showError(e) {
        $('#progress').addClass('red-text').html(e);
      }
 
      function showMessage(e) {
        $('#progress').removeClass('red-text').html(e);
        $('#progress').html('<div class="loading"><img src="https://script.google.com/d/1FpyzPrVfl2fL2X-6puxANAmM9Jakh23FV1Ym6zmvo1Rk0SjO-157JmFT/gwt/images/spin-wait.gif" alt="loading" /> Subiendo archivo, espere...</div>');
    }
 
 
    </script>
 
  </body>
 
</html>

Я нашел код в Интернете и немного адаптировал его для работы на испанском языке sh.

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